Hi Niphlod --

The culprit seems to be the handling of "datetime" in the function "now" in 
scheduler.py.  If I import datetime within the scope of "now" it works 
fine. I could submit a patch once I get into a place that actually has 
internet.

-- Joe

On Monday, June 17, 2013 11:43:09 PM UTC+8, Niphlod wrote:
>
> the "error on popping task" is shown as soon as an exception is raised 
> into the wrapped_pop_task() function. You can remove the try:except block 
> to see what's the underlying error, but I really don't know what it could 
> be just watching at logs.
>
> Il giorno lunedì 17 giugno 2013 15:18:54 UTC+2, Joe Barnhart ha scritto:
>>
>> Hi Niphlod --
>>
>> I can start with debugging...  Here is the output:
>>
>> root@groomlake2:~# python /home/www-data/web2py/web2py.py -K 
>> swim_smarter -D 0
>> web2py Web Framework
>> Created by Massimo Di Pierro, Copyright 2007-2013
>> Version 2.5.1-stable+timestamp.2013.06.06.15.39.19
>> Database drivers available: SQLite(sqlite3), MySQL(pymysql), PostgreSQL(
>> psycopg2), PostgreSQL(pg8000), IMAP(imaplib)
>> starting single-scheduler for "swim_smarter"...
>> DEBUG:web2py.dal:Your database version does not support the JSON data 
>> type (using TEXT instead)
>> DEBUG:web2py.scheduler.groomlake2#5474:defining tables (migrate=True)
>> DEBUG:web2py.scheduler.groomlake2#5474:thread building own DAL object
>> DEBUG:web2py.scheduler.groomlake2#5474:looping...
>> ERROR:web2py.scheduler.groomlake2#5474:    error popping tasks
>> DEBUG:web2py.dal:Your database version does not support the JSON data 
>> type (using TEXT instead)
>> DEBUG:web2py.scheduler.groomlake2#5474:defining tables (migrate=False)
>> ERROR:web2py.scheduler.groomlake2#5474:Error retrieving status
>> ERROR:web2py.scheduler.groomlake2#5474:    error popping tasks
>> ERROR:web2py.scheduler.groomlake2#5474:    error popping tasks
>> ERROR:web2py.scheduler.groomlake2#5474:    error popping tasks
>> ERROR:web2py.scheduler.groomlake2#5474:    error popping tasks
>> ERROR:web2py.scheduler.groomlake2#5474:    error popping tasks
>> ERROR:web2py.scheduler.groomlake2#5474:    error popping tasks
>> ERROR:web2py.scheduler.groomlake2#5474:Error retrieving status
>> ERROR:web2py.scheduler.groomlake2#5474:    error popping tasks
>> ERROR:web2py.scheduler.groomlake2#5474:    error popping tasks
>> ERROR:web2py.scheduler.groomlake2#5474:    error popping tasks
>> DEBUG:web2py.scheduler.groomlake2#5474:sleeping...
>> ERROR:web2py.scheduler.groomlake2#5474:Error retrieving status
>> ^CINFO:web2py.scheduler.groomlake2#5474:catched
>> INFO:web2py.scheduler.groomlake2#5474:die!
>>
>> I saw the migrate=True stuff and went and switched off all migrates but 
>> the error remained.
>>
>> I also think it is odd the error is about "popping tasks" because the 
>> tasks table has no entries at all -- nor does the run table or the worker 
>> table.  All three schduler tables are completely empty.
>>
>> As for real-time debugging this, I'm in Malaysia this week on a biz 
>> trip.  (I'm so jet-lagged I don't think I can find my head with both hands!)
>>
>> -- Joe
>>
>> On Sunday, June 16, 2013 8:20:16 PM UTC+8, Niphlod wrote:
>>>
>>> never run the scheduler with sqlite database, if you're planning to 
>>> launch multiple schedulers. SQLite and concurrency don't go along very well.
>>> If your app accesses the postgresql database it should be able to 
>>> connect as well from the scheduler, it's true, but evidently something is 
>>> different between your "web" environment and your "scheduler" one.
>>> PS: can you start the scheduler with web2py.py -K appname -D 0 ?
>>> -D 0 enables DEBUG logs and we maybe able to see the "something" that is 
>>> not working.
>>> If you can't come up with a solution, I'm available to do some 
>>> debugging, send me a PM.
>>>
>>> On Sunday, June 16, 2013 9:08:33 AM UTC+2, Joe Barnhart wrote:
>>>>
>>>> Good points.
>>>>
>>>> But since I'm running the same application in the web server, and it 
>>>> can see and read/write the PostgreSQL database from the web process, does 
>>>> that imply that the scheduler process (which uses all the same files) can 
>>>> see the database as well?  If there is nu such assumption, how would I go 
>>>> about proving access from the scheduler process?
>>>>
>>>> As an aside, I tried running the scheduler as root and as www-data (the 
>>>> owner and group of all the web2py files).  They both resulted in the same 
>>>> errors.  I was thinking about changing the scheduler to run its tables in 
>>>> SQLite and keep the application in PostgreSQL.  Would that be tempting the 
>>>> fates to throw down more anguish on me?
>>>>
>>>> -- Joe
>>>>
>>>> On Saturday, June 15, 2013 9:56:37 PM UTC+8, Niphlod wrote:
>>>>>
>>>>> scheduler and whatever you choose to run your "web part" are totally 
>>>>> unrelated. It's meant to be as a separate process, and can totally run on 
>>>>> its own. What you need to check is that the scheduler instance can 
>>>>> connect 
>>>>> to the database (if this was a result of permission problems on the file, 
>>>>> the breakage should have happened before those logs, e.g. reading the 
>>>>> source file of web2py.py).
>>>>>
>>>>> On Saturday, June 15, 2013 4:20:14 AM UTC+2, Joe Barnhart wrote:
>>>>>>
>>>>>> I'm trying to set up a test server that's close to the production 
>>>>>> server I'm going to have.  I have a VM with web2py and nginx/uwsgi 
>>>>>> installed on Debian.  The database is Postgres which runs on the host of 
>>>>>> the VM and talks thru a "host only" network adapter, also on Linux.
>>>>>>
>>>>>> It all seems to work -- web2py can see and use the Postgres database, 
>>>>>> I can serve pages thru nginx and uwsgi.  But when I start the scheduler 
>>>>>> all 
>>>>>> hell breaks loose.
>>>>>>
>>>>>>
>>>>>> web2py Web Framework
>>>>>> Created by Massimo Di Pierro, Copyright 2007-2013
>>>>>> Version 2.5.1-stable+timestamp.2013.06.06.15.39.19
>>>>>> Database drivers available: SQLite(sqlite3), MySQL(pymysql), 
>>>>>> PostgreSQL(pg8000), IMAP(imaplib)
>>>>>> starting single-scheduler for "swim_smarter"...
>>>>>> ERROR:web2py.scheduler.groomlake2#3208:    error popping tasks
>>>>>> ERROR:web2py.scheduler.groomlake2#3208:Error retrieving status
>>>>>> ERROR:web2py.scheduler.groomlake2#3208:    error popping tasks
>>>>>> ERROR:web2py.scheduler.groomlake2#3208:    error popping tasks
>>>>>> ERROR:web2py.scheduler.groomlake2#3208:    error popping tasks
>>>>>> ERROR:web2py.scheduler.groomlake2#3208:    error popping tasks
>>>>>> ERROR:web2py.scheduler.groomlake2#3208:    error popping tasks
>>>>>> ERROR:web2py.scheduler.groomlake2#3208:Error retrieving status
>>>>>> ERROR:web2py.scheduler.groomlake2#3208:    error popping tasks
>>>>>> ERROR:web2py.scheduler.groomlake2#3208:    error popping tasks
>>>>>> ERROR:web2py.scheduler.groomlake2#3208:    error popping tasks
>>>>>> ERROR:web2py.scheduler.groomlake2#3208:    error popping tasks
>>>>>>
>>>>>>
>>>>>> Maybe I'm starting the scheduler wrong.  I'm using sudo to start an 
>>>>>> instance of web2py separate from uwsgi, but using www-data:www-data as 
>>>>>> the 
>>>>>> user and group.  I only pass "-K" and the application name, once here 
>>>>>> but 
>>>>>> I'd like to start 3 to 6 instances.  The console begins immediately 
>>>>>> pouring 
>>>>>> out error messages from the schedulers, but I can see from the databse 
>>>>>> tables on the host that no processes have been inserted as workers into 
>>>>>> the 
>>>>>> table yet.
>>>>>>
>>>>>> What is the best way of using scheduler processes with nginx/uwsgi?  
>>>>>> Can it be started and stopped with the server?  I really depend on this 
>>>>>> scheduler -- it's one of the best features of web2py -- so if I have to 
>>>>>> use 
>>>>>> apache or something else in production I'll do that.
>>>>>>
>>>>>> -- Joe
>>>>>>
>>>>>

-- 

--- 
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 [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to