ok, so it's definitely getting "hanged" between your "custom logging" (that 
you say it's just before the return at the end of your task) and updating 
the result + the status of the task.
Are you by any chance using lots of print statements in your task ? 
If you're using popen2 (that anyway is NOT recommended in python), did you 
check that the stderr and stdout pipes are not filled up ?
Did you try to run the task using web2py shell to see if it's not "bugged" 
per se ?


On Friday, August 22, 2014 12:45:40 PM UTC+2, Stephen Weiss wrote:
>
> Niphlod,
>
> The following is the output from start of scheduler to the point where I 
> Ctrl-C'd it, with the task run in the middle
>
> Here's the process output during the run...
> [root@centos-63 ~]# ps -ef | grep web
> root      7585  7521  0 05:34 pts/0    00:00:00 python web2py.py -K 
> APITool2 -D 0
> root      7598  7585  0 05:35 pts/0    00:00:00 python web2py.py -K 
> APITool2 -D 0
> root      7651  7635  0 05:36 pts/1    00:00:00 grep web
>
> and after I Ctrl-C'd the manual run of the scheduler.
>
> [root@centos-63 ~]# ps -ef | grep web
> root      7598     1  0 05:35 pts/0    00:00:00 python web2py.py -K 
> APITool2 -D 0
> root      7655  7635  0 05:44 pts/1    00:00:00 grep web
> [root@centos-63 ~]# 
>
> Thanks!
>
> [root@centos-63 web2py]# python web2py.py -K Tool -D 0
> web2py Web Framework
> Created by Massimo Di Pierro, Copyright 2007-2014
> Version 2.9.5-stable+timestamp.2014.03.16.02.35.39
> Database drivers available: SQLite(sqlite3), MySQL(pymysql), 
> PostgreSQL(pg8000), IMAP(imaplib)
> starting single-scheduler for "Tool"...
> /opt/web-apps/web2py/gluon/custom_import.py:71: DeprecationWarning: the 
> sets module is deprecated
>   return NATIVE_IMPORTER(oname, globals, locals, fromlist, level)
> /opt/web-apps/web2py/gluon/custom_import.py:71: DeprecationWarning: The 
> popen2 module is deprecated.  Use the subprocess module.
>   return NATIVE_IMPORTER(oname, globals, locals, fromlist, level)
> DEBUG:web2py.scheduler.centos-63#7585:defining tables (migrate=True)
> DEBUG:web2py.scheduler.centos-63#7585:thread building own DAL object
> DEBUG:web2py.scheduler.centos-63#7585:looping...
> DEBUG:web2py.scheduler.centos-63#7585:defining tables (migrate=False)
> INFO:web2py.scheduler.centos-63#7585:nothing to do
> DEBUG:web2py.scheduler.centos-63#7585:sleeping...
> DEBUG:web2py.scheduler.centos-63#7585:    freeing workers that have not 
> sent heartbeat
> INFO:web2py.scheduler.centos-63#7585:centos-63#7572 is a ticker, I'm a 
> poor worker
> DEBUG:web2py.scheduler.centos-63#7585:looping...
> INFO:web2py.scheduler.centos-63#7585:nothing to do
> DEBUG:web2py.scheduler.centos-63#7585:sleeping...
> DEBUG:web2py.scheduler.centos-63#7585:........recording heartbeat (ACTIVE)
> DEBUG:web2py.scheduler.centos-63#7585:looping...
> INFO:web2py.scheduler.centos-63#7585:nothing to do
> DEBUG:web2py.scheduler.centos-63#7585:sleeping...
> DEBUG:web2py.scheduler.centos-63#7585:........recording heartbeat (ACTIVE)
> DEBUG:web2py.scheduler.centos-63#7585:looping...
> INFO:web2py.scheduler.centos-63#7585:nothing to do
> DEBUG:web2py.scheduler.centos-63#7585:sleeping...
> DEBUG:web2py.scheduler.centos-63#7585:........recording heartbeat (ACTIVE)
> DEBUG:web2py.scheduler.centos-63#7585:looping...
> INFO:web2py.scheduler.centos-63#7585:nothing to do
> DEBUG:web2py.scheduler.centos-63#7585:sleeping...
> DEBUG:web2py.scheduler.centos-63#7585:........recording heartbeat (ACTIVE)
> DEBUG:web2py.scheduler.centos-63#7585:looping...
> INFO:web2py.scheduler.centos-63#7585:nothing to do
> DEBUG:web2py.scheduler.centos-63#7585:sleeping...
> DEBUG:web2py.scheduler.centos-63#7585:........recording heartbeat (ACTIVE)
> DEBUG:web2py.scheduler.centos-63#7585:    freeing workers that have not 
> sent heartbeat
> INFO:web2py.scheduler.centos-63#7585:TICKER: I'm a ticker
> DEBUG:web2py.scheduler.centos-63#7585:looping...
> DEBUG:web2py.scheduler.centos-63#7585:Assigning tasks...
> INFO:web2py.scheduler.centos-63#7585:TICKER: workers are 1
> INFO:web2py.scheduler.centos-63#7585:TICKER: tasks are 2
> DEBUG:web2py.scheduler.centos-63#7585:Tasks assigned...
> DEBUG:web2py.scheduler.centos-63#7585:sleeping...
> DEBUG:web2py.scheduler.centos-63#7585:........recording heartbeat (ACTIVE)
> DEBUG:web2py.scheduler.centos-63#7585:looping...
> DEBUG:web2py.scheduler.centos-63#7585:........recording heartbeat (ACTIVE)
> DEBUG:web2py.scheduler.centos-63#7585:   work to do 138
> DEBUG:web2py.scheduler.centos-63#7585:    new scheduler_run record
> INFO:web2py.scheduler.centos-63#7585:new task 138 "deploy" 
> Tool/default.deploy
> DEBUG:web2py.scheduler.centos-63#7585: new task allocated: 
> Tool/default.deploy
> DEBUG:web2py.scheduler.centos-63#7585:   task starting
> DEBUG:web2py.scheduler.centos-63#7585:    task started
> DEBUG:Tool:tasks.py:deploy: Deployment:[testing] Project:[2] 
> Environment:[1]
> DEBUG:web2py.scheduler.centos-63#7585:........recording heartbeat (RUNNING)
> DEBUG:web2py.scheduler.centos-63#7585:........recording heartbeat (RUNNING)
> DEBUG:web2py.scheduler.centos-63#7585:........recording heartbeat (RUNNING)
> DEBUG:web2py.scheduler.centos-63#7585:    freeing workers that have not 
> sent heartbeat
> DEBUG:web2py.scheduler.centos-63#7585:........recording heartbeat (RUNNING)
> DEBUG:Tool:tasks.py:deploy_project: Done
> DEBUG:Tool:tasks.py:deploy: Done
> DEBUG:Tool:tasks.py:    new task report: COMPLETED
> DEBUG:Tool:tasks.py:   result: null
> DEBUG:web2py.scheduler.centos-63#7585:........recording heartbeat (RUNNING)
> DEBUG:web2py.scheduler.centos-63#7585:........recording heartbeat (RUNNING)
> DEBUG:web2py.scheduler.centos-63#7585:........recording heartbeat (RUNNING)
> DEBUG:web2py.scheduler.centos-63#7585:........recording heartbeat (RUNNING)
> DEBUG:web2py.scheduler.centos-63#7585:    freeing workers that have not 
> sent heartbeat
> DEBUG:web2py.scheduler.centos-63#7585:........recording heartbeat (RUNNING)
> DEBUG:web2py.scheduler.centos-63#7585:........recording heartbeat (RUNNING)
> DEBUG:web2py.scheduler.centos-63#7585:........recording heartbeat (RUNNING)
> DEBUG:web2py.scheduler.centos-63#7585:........recording heartbeat (RUNNING)
> DEBUG:web2py.scheduler.centos-63#7585:........recording heartbeat (RUNNING)
> DEBUG:web2py.scheduler.centos-63#7585:    freeing workers that have not 
> sent heartbeat
> DEBUG:web2py.scheduler.centos-63#7585:........recording heartbeat (RUNNING)
> DEBUG:web2py.scheduler.centos-63#7585:........recording heartbeat (RUNNING)
> DEBUG:web2py.scheduler.centos-63#7585:........recording heartbeat (RUNNING)
> DEBUG:web2py.scheduler.centos-63#7585:........recording heartbeat (RUNNING)
> DEBUG:web2py.scheduler.centos-63#7585:........recording heartbeat (RUNNING)
> DEBUG:web2py.scheduler.centos-63#7585:    freeing workers that have not 
> sent heartbeat
> DEBUG:web2py.scheduler.centos-63#7585:........recording heartbeat (RUNNING)
> DEBUG:web2py.scheduler.centos-63#7585:........recording heartbeat (RUNNING)
> DEBUG:web2py.scheduler.centos-63#7585:........recording heartbeat (RUNNING)
> DEBUG:web2py.scheduler.centos-63#7585:........recording heartbeat (RUNNING)
> DEBUG:web2py.scheduler.centos-63#7585:........recording heartbeat (RUNNING)
> DEBUG:web2py.scheduler.centos-63#7585:    freeing workers that have not 
> sent heartbeat
> DEBUG:web2py.scheduler.centos-63#7585:........recording heartbeat (RUNNING)
> DEBUG:web2py.scheduler.centos-63#7585:........recording heartbeat (RUNNING)
> DEBUG:web2py.scheduler.centos-63#7585:........recording heartbeat (RUNNING)
> DEBUG:web2py.scheduler.centos-63#7585:........recording heartbeat (RUNNING)
> DEBUG:web2py.scheduler.centos-63#7585:........recording heartbeat (RUNNING)
> DEBUG:web2py.scheduler.centos-63#7585:    freeing workers that have not 
> sent heartbeat
> DEBUG:web2py.scheduler.centos-63#7585:........recording heartbeat (RUNNING)
> DEBUG:web2py.scheduler.centos-63#7585:........recording heartbeat (RUNNING)
> DEBUG:web2py.scheduler.centos-63#7585:........recording heartbeat (RUNNING)
> DEBUG:web2py.scheduler.centos-63#7585:........recording heartbeat (RUNNING)
> DEBUG:web2py.scheduler.centos-63#7585:........recording heartbeat (RUNNING)
> DEBUG:web2py.scheduler.centos-63#7585:    freeing workers that have not 
> sent heartbeat
> DEBUG:web2py.scheduler.centos-63#7585:........recording heartbeat (RUNNING)
> DEBUG:web2py.scheduler.centos-63#7585:........recording heartbeat (RUNNING)
> ^C^CINFO:web2py.scheduler.centos-63#7585:catched
> INFO:web2py.scheduler.centos-63#7585:die!
> ^CError in atexit._run_exitfuncs:
> Traceback (most recent call last):
>   File "/usr/lib64/python2.6/atexit.py", line 24, in _run_exitfuncs
>     func(*targs, **kargs)
>   File "/usr/lib64/python2.6/multiprocessing/util.py", line 269, in 
> _exit_function
>     p.join()
>   File "/usr/lib64/python2.6/multiprocessing/process.py", line 119, in join
>     res = self._popen.wait(timeout)
>   File "/usr/lib64/python2.6/multiprocessing/forking.py", line 122, in wait
>     return self.poll(0)
>   File "/usr/lib64/python2.6/multiprocessing/forking.py", line 107, in poll
>     pid, sts = os.waitpid(self.pid, flag)
> KeyboardInterrupt
> Error in sys.exitfunc:
> Traceback (most recent call last):
>   File "/usr/lib64/python2.6/atexit.py", line 24, in _run_exitfuncs
>     func(*targs, **kargs)
>   File "/usr/lib64/python2.6/multiprocessing/util.py", line 269, in 
> _exit_function
>     p.join()
>   File "/usr/lib64/python2.6/multiprocessing/process.py", line 119, in join
>     res = self._popen.wait(timeout)
>   File "/usr/lib64/python2.6/multiprocessing/forking.py", line 122, in wait
>     return self.poll(0)
>   File "/usr/lib64/python2.6/multiprocessing/forking.py", line 107, in poll
>     pid, sts = os.waitpid(self.pid, flag)
> KeyboardInterrupt
> [root@centos-63 web2py]# 
>

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to