I'm not sure what "narrow" is by the period is 30 seconds. I'm seeing weirder behavior now. The task completes successfully but it quits being executed at a random time. The only way for me to fix it is to restart the scheduler process. I enabled the debug logging and here are the last two runs of my process that executed (sorry for the length, I don't wanna leave anything out though):
2012-12-16 21:39:24,315 - web2py.scheduler - INFO - TICKER: I'm a ticker (snapserver.local#63)
2012-12-16 21:39:27,035 - web2py.scheduler - DEBUG - looping...
2012-12-16 21:39:27,042 - web2py.scheduler - INFO - TICKER: workers are 1
2012-12-16 21:39:27,042 - web2py.scheduler - INFO - TICKER: tasks are 1
2012-12-16 21:39:27,042 - web2py.scheduler - DEBUG - sleeping...
2012-12-16 21:39:27,320 - web2py.scheduler - DEBUG - ........recording heartbeat
2012-12-16 21:39:30,043 - web2py.scheduler - DEBUG - looping...
2012-12-16 21:39:30,047 - web2py.scheduler - DEBUG - work to do 1
2012-12-16 21:39:30,047 - web2py.scheduler - DEBUG - new scheduler_run record
2012-12-16 21:39:30,049 - web2py.scheduler - INFO - new task 1 "search for files" ss_server/appadmin.searchForFiles
2012-12-16 21:39:30,049 - web2py.scheduler - DEBUG - new task allocated: ss_server/appadmin.searchForFiles
2012-12-16 21:39:30,050 - web2py.scheduler - DEBUG - task starting
2012-12-16 21:39:30,054 - web2py.scheduler - DEBUG - task started
2012-12-16 21:39:30,089 - ss_server - DEBUG - Logger created
2012-12-16 21:39:30,090 - ss_server - INFO - searching for files
2012-12-16 21:39:30,090 - ss_server - INFO - creating watermark
2012-12-16 21:39:30,095 - ss_server - INFO - done creating watermark
2012-12-16 21:39:30,096 - ss_server - INFO - globbing files
2012-12-16 21:39:30,096 - ss_server - INFO - files globbed
2012-12-16 21:39:30,097 - ss_server - INFO - getting basename for /usr/local/ss_server/input/S-1014.D-20121214121351.L-WIKILONG.I-000000000000000000055032,.P-2.jpg
2012-12-16 21:39:30,097 - ss_server - INFO - splitting filename
2012-12-16 21:39:30,097 - ss_server - INFO - checking filename
2012-12-16 21:39:30,098 - ss_server - INFO - processing file: S-1014.D-20121214121351.L-WIKILONG.I-000000000000000000055032,.P-2.jpg
2012-12-16 21:39:30,098 - ss_server - INFO - adding watermark
2012-12-16 21:39:30,153 - ss_server - INFO - IO Error
2012-12-16 21:39:30,153 - ss_server - INFO - end of loop
2012-12-16 21:39:30,154 - ss_server - INFO - getting basename for /usr/local/ss_server/input/S-1014.D-20121214135116.L-KONGS.I-000000000000000000055055,.P-1.jpg
2012-12-16 21:39:30,154 - ss_server - INFO - splitting filename
2012-12-16 21:39:30,155 - ss_server - INFO - checking filename
2012-12-16 21:39:30,155 - ss_server - INFO - processing file: S-1014.D-20121214135116.L-KONGS.I-000000000000000000055055,.P-1.jpg
2012-12-16 21:39:30,156 - ss_server - INFO - adding watermark
2012-12-16 21:39:30,196 - ss_server - INFO - IO Error
2012-12-16 21:39:30,197 - ss_server - INFO - end of loop
2012-12-16 21:39:30,197 - ss_server - INFO - getting basename for /usr/local/ss_server/input/S-1019.D-20121214122954.L-WIKILONG.I-xxxxxxxxxxxxxxxxxxxxTEST,.P-8.jpg
2012-12-16 21:39:30,197 - ss_server - INFO - splitting filename
2012-12-16 21:39:30,198 - ss_server - INFO - checking filename
2012-12-16 21:39:30,198 - ss_server - INFO - processing file: S-1019.D-20121214122954.L-WIKILONG.I-xxxxxxxxxxxxxxxxxxxxTEST,.P-8.jpg
2012-12-16 21:39:30,217 - ss_server - INFO - IO Error
2012-12-16 21:39:30,218 - ss_server - INFO - end of loop
2012-12-16 21:39:30,218 - ss_server - INFO - getting basename for /usr/local/ss_server/input/S-1021.D-20121214125548.L-WIKILONG.I-100000000000000000055006,.P-1.jpg
2012-12-16 21:39:30,218 - ss_server - INFO - splitting filename
2012-12-16 21:39:30,219 - ss_server - INFO - checking filename
2012-12-16 21:39:30,219 - ss_server - INFO - processing file: S-1021.D-20121214125548.L-WIKILONG.I-100000000000000000055006,.P-1.jpg
2012-12-16 21:39:30,221 - ss_server - INFO - adding watermark
2012-12-16 21:39:30,274 - ss_server - INFO - IO Error
2012-12-16 21:39:30,274 - ss_server - INFO - end of loop
2012-12-16 21:39:30,275 - ss_server - INFO - ending function
2012-12-16 21:39:30,277 - web2py.scheduler - DEBUG - new task report: COMPLETED
2012-12-16 21:39:30,277 - web2py.scheduler - DEBUG - result: "success"
2012-12-16 21:39:30,326 - web2py.scheduler - DEBUG - ........recording heartbeat
2012-12-16 21:39:30,327 - web2py.scheduler - DEBUG - partial output: "serach for files
/usr/local/ss_server/web2py_ss_server
processing file: S-1014.D-20121214121351.L-WIKILONG.I-000000000000000000055032,.P-2.jpg
IO Error
processing file: S-1014.D-20121214135116.L-KONGS.I-000000000000000000055055,.P-1.jpg
IO Error
processing file: S-1019.D-20121214122954.L-WIKILONG.I-xxxxxxxxxxxxxxxxxxxxTEST,.P-8.jpg
IO Error
processing file: S-1021.D-20121214125548.L-WIKILONG.I-100000000000000000055006,.P-1.jpg
IO Error
"
2012-12-16 21:39:30,327 - web2py.scheduler - DEBUG - task completed or failed
2012-12-16 21:39:30,327 - web2py.scheduler - DEBUG - recording task report in db (COMPLETED)
2012-12-16 21:39:30,330 - web2py.scheduler - INFO - task completed (COMPLETED)
2012-12-16 21:39:30,331 - web2py.scheduler - DEBUG - looping...
2012-12-16 21:39:30,331 - web2py.scheduler - DEBUG - nothing to do
2012-12-16 21:39:30,332 - web2py.scheduler - DEBUG - sleeping...
2012-12-16 21:39:33,331 - web2py.scheduler - DEBUG - ........recording heartbeat
2012-12-16 21:39:33,333 - web2py.scheduler - DEBUG - looping...
2012-12-16 21:39:33,335 - web2py.scheduler - DEBUG - nothing to do
2012-12-16 21:39:33,335 - web2py.scheduler - DEBUG - sleeping...
2012-12-16 21:39:36,336 - web2py.scheduler - DEBUG - ........recording heartbeat
2012-12-16 21:39:36,337 - web2py.scheduler - DEBUG - looping...
2012-12-16 21:39:36,338 - web2py.scheduler - DEBUG - nothing to do
2012-12-16 21:39:36,339 - web2py.scheduler - DEBUG - sleeping...
2012-12-16 21:39:39,341 - web2py.scheduler - DEBUG - looping...
2012-12-16 21:39:39,342 - web2py.scheduler - DEBUG - nothing to do
2012-12-16 21:39:39,342 - web2py.scheduler - DEBUG - sleeping...
2012-12-16 21:39:39,391 - web2py.scheduler - DEBUG - ........recording heartbeat
2012-12-16 21:39:39,392 - web2py.scheduler - DEBUG - freeing workers that have not sent heartbeat
2012-12-16 21:39:39,394 - web2py.scheduler - INFO - TICKER: I'm a ticker (snapserver.local#63)
2012-12-16 21:39:42,343 - web2py.scheduler - DEBUG - looping...
2012-12-16 21:39:42,347 - web2py.scheduler - INFO - TICKER: workers are 1
2012-12-16 21:39:42,348 - web2py.scheduler - INFO - TICKER: tasks are 0
2012-12-16 21:39:42,348 - web2py.scheduler - DEBUG - sleeping...
2012-12-16 21:39:42,406 - web2py.scheduler - DEBUG - ........recording heartbeat
2012-12-16 21:39:45,350 - web2py.scheduler - DEBUG - looping...
2012-12-16 21:39:45,351 - web2py.scheduler - DEBUG - nothing to do
2012-12-16 21:39:45,352 - web2py.scheduler - DEBUG - sleeping...
2012-12-16 21:39:45,438 - web2py.scheduler - DEBUG - ........recording heartbeat
2012-12-16 21:39:48,353 - web2py.scheduler - DEBUG - looping...
2012-12-16 21:39:48,354 - web2py.scheduler - DEBUG - nothing to do
2012-12-16 21:39:48,354 - web2py.scheduler - DEBUG - sleeping...
2012-12-16 21:39:48,442 - web2py.scheduler - DEBUG - ........recording heartbeat
2012-12-16 21:39:51,356 - web2py.scheduler - DEBUG - looping...
2012-12-16 21:39:51,357 - web2py.scheduler - DEBUG - nothing to do
2012-12-16 21:39:51,357 - web2py.scheduler - DEBUG - sleeping...
2012-12-16 23:12:11,268 - web2py.scheduler - DEBUG - looping...
2012-12-16 23:12:11,269 - web2py.scheduler - DEBUG - nothing to do
2012-12-16 23:12:11,269 - web2py.scheduler - DEBUG - sleeping...
2012-12-16 23:12:14,271 - web2py.scheduler - DEBUG - looping...
2012-12-16 23:12:14,273 - web2py.scheduler - DEBUG - nothing to do
2012-12-16 23:12:14,273 - web2py.scheduler - DEBUG - sleeping...
2012-12-16 23:12:16,225 - web2py.scheduler - DEBUG - ........recording heartbeat
2012-12-16 23:12:17,275 - web2py.scheduler - DEBUG - looping...
2012-12-16 23:12:17,277 - web2py.scheduler - DEBUG - nothing to do
2012-12-16 23:12:17,277 - web2py.scheduler - DEBUG - sleeping...
2012-12-16 23:12:19,385 - web2py.scheduler - DEBUG - ........recording heartbeat
2012-12-16 23:12:19,386 - web2py.scheduler - DEBUG - freeing workers that have not sent heartbeat
2012-12-16 23:12:19,388 - web2py.scheduler - INFO - TICKER: I'm a ticker (snapserver.local#63)
2012-12-16 23:12:20,278 - web2py.scheduler - DEBUG - looping...
2012-12-16 23:12:20,288 - web2py.scheduler - INFO - TICKER: workers are 1
2012-12-16 23:12:20,289 - web2py.scheduler - INFO - TICKER: tasks are 1
2012-12-16 23:12:20,289 - web2py.scheduler - DEBUG - sleeping...
2012-12-16 23:12:22,392 - web2py.scheduler - DEBUG - ........recording heartbeat
2012-12-16 23:12:23,291 - web2py.scheduler - DEBUG - looping...
2012-12-16 23:12:23,295 - web2py.scheduler - DEBUG - work to do 1
2012-12-16 23:12:23,296 - web2py.scheduler - DEBUG - new scheduler_run record
2012-12-16 23:12:23,298 - web2py.scheduler - INFO - new task 1 "search for files" ss_server/appadmin.searchForFiles
2012-12-16 23:12:23,298 - web2py.scheduler - DEBUG - new task allocated: ss_server/appadmin.searchForFiles
2012-12-16 23:12:23,299 - web2py.scheduler - DEBUG - task starting
2012-12-16 23:12:23,303 - web2py.scheduler - DEBUG - task started
2012-12-16 23:12:23,335 - ss_server - DEBUG - Logger created
2012-12-16 23:12:23,335 - ss_server - INFO - searching for files
2012-12-16 23:12:23,336 - ss_server - INFO - creating watermark
2012-12-16 23:12:23,341 - ss_server - INFO - done creating watermark
2012-12-16 23:12:23,341 - ss_server - INFO - globbing files
2012-12-16 23:12:23,342 - ss_server - INFO - files globbed
2012-12-16 23:12:23,342 - ss_server - INFO - getting basename for /usr/local/ss_server/input/S-1014.D-20121214121351.L-WIKILONG.I-000000000000000000055032,.P-2.jpg
2012-12-16 23:12:23,343 - ss_server - INFO - splitting filename
2012-12-16 23:12:23,343 - ss_server - INFO - checking filename
2012-12-16 23:12:23,343 - ss_server - INFO - processing file: S-1014.D-20121214121351.L-WIKILONG.I-000000000000000000055032,.P-2.jpg
2012-12-16 23:12:23,344 - ss_server - INFO - adding watermark
2012-12-16 23:12:23,400 - ss_server - INFO - IO Error
2012-12-16 23:12:23,400 - ss_server - INFO - end of loop
2012-12-16 23:12:23,401 - ss_server - INFO - getting basename for /usr/local/ss_server/input/S-1014.D-20121214135116.L-KONGS.I-000000000000000000055055,.P-1.jpg
2012-12-16 23:12:23,401 - ss_server - INFO - splitting filename
2012-12-16 23:12:23,401 - ss_server - INFO - checking filename
2012-12-16 23:12:23,402 - ss_server - INFO - processing file: S-1014.D-20121214135116.L-KONGS.I-000000000000000000055055,.P-1.jpg
2012-12-16 23:12:23,402 - ss_server - INFO - adding watermark
2012-12-16 23:12:23,441 - ss_server - INFO - IO Error
2012-12-16 23:12:23,441 - ss_server - INFO - end of loop
2012-12-16 23:12:23,442 - ss_server - INFO - getting basename for /usr/local/ss_server/input/S-1019.D-20121214122954.L-WIKILONG.I-xxxxxxxxxxxxxxxxxxxxTEST,.P-8.jpg
2012-12-16 23:12:23,442 - ss_server - INFO - splitting filename
2012-12-16 23:12:23,442 - ss_server - INFO - checking filename
2012-12-16 23:12:23,442 - ss_server - INFO - processing file: S-1019.D-20121214122954.L-WIKILONG.I-xxxxxxxxxxxxxxxxxxxxTEST,.P-8.jpg
2012-12-16 23:12:23,462 - ss_server - INFO - IO Error
2012-12-16 23:12:23,462 - ss_server - INFO - end of loop
2012-12-16 23:12:23,463 - ss_server - INFO - getting basename for /usr/local/ss_server/input/S-1021.D-20121214125548.L-WIKILONG.I-100000000000000000055006,.P-1.jpg
2012-12-16 23:12:23,463 - ss_server - INFO - splitting filename
2012-12-16 23:12:23,463 - ss_server - INFO - checking filename
2012-12-16 23:12:23,463 - ss_server - INFO - processing file: S-1021.D-20121214125548.L-WIKILONG.I-100000000000000000055006,.P-1.jpg
2012-12-16 23:12:23,465 - ss_server - INFO - adding watermark
2012-12-16 23:12:23,527 - ss_server - INFO - IO Error
2012-12-16 23:12:23,528 - ss_server - INFO - end of loop
2012-12-16 23:12:23,528 - ss_server - INFO - ending function
2012-12-16 23:12:23,531 - web2py.scheduler - DEBUG - new task report: COMPLETED
2012-12-16 23:12:23,531 - web2py.scheduler - DEBUG - result: "success"
2012-12-16 23:12:23,573 - web2py.scheduler - DEBUG - partial output: "serach for files
/usr/local/ss_server/web2py_ss_server
processing file: S-1014.D-20121214121351.L-WIKILONG.I-000000000000000000055032,.P-2.jpg
IO Error
processing file: S-1014.D-20121214135116.L-KONGS.I-000000000000000000055055,.P-1.jpg
IO Error
processing file: S-1019.D-20121214122954.L-WIKILONG.I-xxxxxxxxxxxxxxxxxxxxTEST,.P-8.jpg
IO Error
processing file: S-1021.D-20121214125548.L-WIKILONG.I-100000000000000000055006,.P-1.jpg
IO Error
"
2012-12-16 23:12:23,573 - web2py.scheduler - DEBUG - task completed or failed
2012-12-16 23:12:23,574 - web2py.scheduler - DEBUG - recording task report in db (COMPLETED)
2012-12-16 23:12:23,580 - web2py.scheduler - INFO - task completed (COMPLETED)
2012-12-16 23:12:23,580 - web2py.scheduler - DEBUG - looping...
2012-12-16 23:12:23,582 - web2py.scheduler - DEBUG - nothing to do
2012-12-16 23:12:23,582 - web2py.scheduler - DEBUG - sleeping...
2012-12-16 23:12:25,429 - web2py.scheduler - DEBUG - ........recording heartbeat
2012-12-16 23:12:26,584 - web2py.scheduler - DEBUG - looping...
2012-12-16 23:12:26,586 - web2py.scheduler - DEBUG - nothing to do
2012-12-16 23:12:26,586 - web2py.scheduler - DEBUG - sleeping...
2012-12-16 23:12:28,447 - web2py.scheduler - DEBUG - ........recording heartbeat
2012-12-16 23:12:29,588 - web2py.scheduler - DEBUG - looping...
2012-12-16 23:12:29,589 - web2py.scheduler - DEBUG - nothing to do
2012-12-16 23:12:29,590 - web2py.scheduler - DEBUG - sleeping...
2012-12-16 23:12:31,474 - web2py.scheduler - DEBUG - ........recording heartbeat
2012-12-16 23:12:32,592 - web2py.scheduler - DEBUG - looping...
2012-12-16 23:12:32,593 - web2py.scheduler - DEBUG - nothing to do
2012-12-16 23:12:32,594 - web2py.scheduler - DEBUG - sleeping...
2012-12-16 23:12:34,479 - web2py.scheduler - DEBUG - ........recording heartbeat
2012-12-16 23:12:34,480 - web2py.scheduler - DEBUG - freeing workers that have not sent heartbeat
2012-12-16 23:12:34,483 - web2py.scheduler - INFO - TICKER: I'm a ticker (snapserver.local#63)
2012-12-16 23:12:35,595 - web2py.scheduler - DEBUG - looping...
2012-12-16 23:12:35,601 - web2py.scheduler - INFO - TICKER: workers are 1
2012-12-16 23:12:35,601 - web2py.scheduler - INFO - TICKER: tasks are 0
2012-12-16 23:12:35,601 - web2py.scheduler - DEBUG - sleeping...
2012-12-16 23:12:37,554 - web2py.scheduler - DEBUG - ........recording heartbeat
2012-12-16 23:12:38,603 - web2py.scheduler - DEBUG - looping...
2012-12-16 23:12:38,605 - web2py.scheduler - DEBUG - nothing to do
2012-12-16 23:12:38,605 - web2py.scheduler - DEBUG - sleeping...
2012-12-16 23:12:40,588 - web2py.scheduler - DEBUG - ........recording heartbeat
2012-12-16 23:12:41,607 - web2py.scheduler - DEBUG - looping...
2012-12-16 23:12:41,610 - web2py.scheduler - DEBUG - nothing to do
2012-12-16 23:12:41,610 - web2py.scheduler - DEBUG - sleeping...
2012-12-16 23:12:43,623 - web2py.scheduler - DEBUG - ........recording heartbeat
2012-12-16 23:12:44,612 - web2py.scheduler - DEBUG - looping...
2012-12-16 23:12:44,613 - web2py.scheduler - DEBUG - nothing to do
2012-12-16 23:12:44,613 - web2py.scheduler - DEBUG - sleeping...
2012-12-16 23:12:46,785 - web2py.scheduler - DEBUG - ........recording heartbeat
2012-12-16 23:12:47,615 - web2py.scheduler - DEBUG - looping...
2012-12-17 01:12:49,028 - web2py.scheduler - DEBUG - ........recording heartbeat
2012-12-17 01:12:49,029 - web2py.scheduler - DEBUG - freeing workers that have not sent heartbeat
2012-12-17 01:12:49,032 - web2py.scheduler - INFO - TICKER: I'm a ticker (snapserver.local#63)
2012-12-17 01:12:52,036 - web2py.scheduler - DEBUG - ........recording heartbeat
2012-12-17 01:12:55,041 - web2py.scheduler - DEBUG - ........recording heartbeat
2012-12-17 01:12:58,045 - web2py.scheduler - DEBUG - ........recording heartbeat
2012-12-17 01:13:01,079 - web2py.scheduler - DEBUG - ........recording heartbeat
2012-12-17 01:13:04,136 - web2py.scheduler - DEBUG - ........recording heartbeat
2012-12-17 01:13:04,137 - web2py.scheduler - DEBUG - freeing workers that have not sent heartbeat
2012-12-17 01:13:04,139 - web2py.scheduler - INFO - TICKER: I'm a ticker (snapserver.local#63)
2012-12-17 01:13:07,180 - web2py.scheduler - DEBUG - ........recording heartbeat
2012-12-17 03:13:07,977 - web2py.scheduler - DEBUG - ........recording heartbeat
2012-12-17 03:13:10,982 - web2py.scheduler - DEBUG - ........recording heartbeat
2012-12-17 03:13:13,986 - web2py.scheduler - DEBUG - ........recording heartbeat
2012-12-17 03:13:17,323 - web2py.scheduler - DEBUG - ........recording heartbeat
2012-12-17 03:13:17,324 - web2py.scheduler - DEBUG - freeing workers that have not sent heartbeat
2012-12-17 03:13:17,327 - web2py.scheduler - INFO - TICKER: I'm a ticker (snapserver.local#63)
2012-12-17 03:13:20,331 - web2py.scheduler - DEBUG - ........recording heartbeat
2012-12-17 03:13:23,336 - web2py.scheduler - DEBUG - ........recording heartbeat
2012-12-17 03:13:26,360 - web2py.scheduler - DEBUG - ........recording heartbeat
2012-12-17 03:28:46,026 - web2py.scheduler - DEBUG - ........recording heartbeat
2012-12-17 03:28:49,068 - web2py.scheduler - DEBUG - ........recording heartbeat
2012-12-17 03:28:49,069 - web2py.scheduler - DEBUG - freeing workers that have not sent heartbeat
2012-12-17 03:28:49,072 - web2py.scheduler - INFO - TICKER: I'm a ticker (snapserver.local#63)
2012-12-17 03:28:52,191 - web2py.scheduler - DEBUG - ........recording heartbeat
2012-12-17 03:28:55,275 - web2py.scheduler - DEBUG - ........recording heartbeat
2012-12-17 03:28:58,288 - web2py.scheduler - DEBUG - ........recording heartbeat
2012-12-17 03:29:01,466 - web2py.scheduler - DEBUG - ........recording heartbeat
2012-12-17 03:29:04,471 - web2py.scheduler - DEBUG - ........recording heartbeat
2012-12-17 03:29:04,472 - web2py.scheduler - DEBUG - freeing workers that have not sent heartbeat
2012-12-17 03:29:04,474 - web2py.scheduler - INFO - TICKER: I'm a ticker (snapserver.local#63)
2012-12-17 03:29:07,486 - web2py.scheduler - DEBUG - ........recording heartbeat
2012-12-17 03:29:10,643 - web2py.scheduler - DEBUG - ........recording heartbeat
2012-12-17 03:29:13,802 - web2py.scheduler - DEBUG - ........recording heartbeat
2012-12-17 03:29:16,910 - web2py.scheduler - DEBUG - ........recording heartbeat
2012-12-17 03:29:19,972 - web2py.scheduler - DEBUG - ........recording heartbeat
2012-12-17 03:29:19,973 - web2py.scheduler - DEBUG - freeing workers that have not sent heartbeat
2012-12-17 03:29:19,975 - web2py.scheduler - INFO - TICKER: I'm a ticker (snapserver.local#63)
The IOErrors in the task are normal and they're caught and handled properly. This has been happening since I upgraded web2py from 1.99 to 2.2.1. The TIMEOUT problem was happening on v1.99. It doesn't run long enough for me to test if that is still happening. It just goes on like that forever. Not sure what happened. Any ideas?