Precise Throughput Timer does not really know how long the test would last. However, it needs to produce the exact number of samples for the test duration. That is solved by adding "test duration" parameter to PTT. If the test lasts longer than the specified duration, then PTT re-generates a next schedule. However, the glue between those schedules was not right, so the overall schedule might have less samples than desired. The updated implementation should ensure that each "test duration" timeframe receives exactly the desired sample count
https://github.com/apache/jmeter/commit/03693f7c66707ddf84346430a979660abe4c58e3
This issue has been migrated to GitHub: https://github.com/apache/jmeter/issues/5227