To summarize:
1) 9/13 version works
2) 10/4 version does not work as you expected

Did you try any 10/5 version?


On Friday, 5 October 2012 10:21:46 UTC-5, Adi wrote:
>
>
> for what it's worth, just want to let you know that after rolling back to 
> "Version 
> 2.0.9 (2012-09-13 23:51:30) stable" tasks are getting executed, marked as 
> COMPLETED, but schedule_run is being marked as FAILED w bellow specified 
> sys.exit(1). 
>
> anyway... this is perfect for now, and customers won't suffer :) 
>
> scheduler and workflow are two crucial things in complex applications from 
> my prospective, so big thanks for scheduler, and can't wait to start 
> testing workflow once it's in. 
>
> On Friday, October 5, 2012 9:27:22 AM UTC-4, Adi wrote:
>>
>>
>> Created a new application from admin panel, accessing single mysql db, 
>> inserted one task that sends an email and prints a test message. 
>>
>> Version 2.0.9 (2012-10-04 20:17:03) dev
>>
>> def test():
>>     db.scheduler_task.insert(
>>                              status='QUEUED',
>>                              application_name='test2',
>>                              task_name='send reminder email',
>>                              function_name='send_msg',
>>                              enabled=True,
>>                              start_time = request.now,
>>                              next_run_time = request.now+datetime.
>> timedelta(minutes=2),
>>                              stop_time = request.now+datetime.timedelta(
>> days=1),
>>                              repeats = 1, # run 1 times
>>                              period = 120, 
>>                              timeout = 60, # should take less than 60 
>> seconds
>>                              )
>>
>>
>>
>> *started scheduler: *
>> asm21:web2py209 adnan$ python web2py.py -a pass -K test2 -X
>> web2py Web Framework
>> Created by Massimo Di Pierro, Copyright 2007-2012
>> Version 2.0.9 (2012-10-04 20:17:03) dev
>> Database drivers available: SQLite(sqlite3), MySQL(pymysql), 
>> PostgreSQL(pg8000), IMAP(imaplib)
>> please visit:
>>  starting scheduler for "test2"...    http://127.0.0.1:8000
>>
>> use "kill -SIGTERM 831" to shutdown the web2py server
>> Currently running 1 scheduler processes
>> Processes started
>> ERROR:Rocket.Errors.Port8000:Socket 127.0.0.1:8000 in use by other 
>> process and it won't share.
>> WARNING:Rocket.Errors.Port8000:Listener started when not ready.
>> Traceback (most recent call last):
>>   File "/Users/adnan/web2py209/gluon/restricted.py", line 209, in 
>> restricted
>>     exec ccode in environment
>>   File "applications/test2/models/db.py", line 15, in <module>
>>     db = 
>> DAL('mysql://crm:password@localhost:3307/CRM',migrate_enabled=False, 
>> fake_migrate_all=True)
>>   File "/Users/adnan/web2py209/gluon/dal.py", line 6600, in __new__
>>     raise RuntimeError, 'Cannot duplicate a Singleton'
>> RuntimeError: Cannot duplicate a Singleton
>>
>>
>> *traceback error in the scheduler_run table after task was run (first 
>> time):*
>> Traceback (most recent call last):
>>   File "/opt/web-apps/web2py/gluon/scheduler.py", line 203, in executor
>>     _env = env(a=a,c=c,import_models=True)
>>   File "/opt/web-apps/web2py/gluon/shell.py", line 127, in env
>>     environment = build_environment(request, response, session)
>>   File "/opt/web-apps/web2py/gluon/compileapp.py", line 388, in 
>> build_environment
>>     t = environment['T'] = translator(request)
>>   File "/opt/web-apps/web2py/gluon/languages.py", line 437, in __init__
>>     self.set_current_languages()
>>   File "/opt/web-apps/web2py/gluon/languages.py", line 492, in 
>> set_current_languages
>>     pl_info = self.get_possible_languages_info('default')
>>   File "/opt/web-apps/web2py/gluon/languages.py", line 471, in 
>> get_possible_languages_info
>>     info = read_possible_languages(self.folder)
>>   File "/opt/web-apps/web2py/gluon/languages.py", line 250, in 
>> read_possible_languages
>>     lambda: read_possible_languages_aux(langdir))
>>   File "/opt/web-apps/web2py/gluon/cfs.py", line 40, in getcfs
>>     return filter() if callable(filter) else ''
>>   File "/opt/web-apps/web2py/gluon/languages.py", line 250, in <lambda>
>>     lambda: read_possible_languages_aux(langdir))
>>   File "/opt/web-apps/web2py/gluon/languages.py", line 215, in 
>> read_possible_languages_aux
>>     flist = oslistdir(langdir)
>> OSError: [Errno 2] No such file or directory: 
>> 'applications/test2/languages'
>>
>> *traceback error in the scheduler_run table after task was run (second 
>> time):*
>> Traceback (most recent call last):
>>   File "/Users/adnan/web2py209/gluon/scheduler.py", line 203, in executor
>>     _env = env(a=a,c=c,import_models=True)
>>   File "/Users/adnan/web2py209/gluon/shell.py", line 134, in env
>>     sys.exit(1)
>> SystemExit: 1
>>
>> Please let me know if there is anything else I can test to help figure 
>> out where exactly is the problem? It's a bit urgent for me to figure this 
>> out, or I have to roll back production before weekend starts :(
>>
>>
>>
>> On Friday, October 5, 2012 12:00:57 AM UTC-4, Adi wrote:
>>>
>>> Will run more tests in the morning on a brand new application, since I 
>>> can't see anything wrong (connection string duplication) in code right now. 
>>> Unfortunately, can't roll back this functionality now, so will have to 
>>> figure it out quickly. Thanks for help Massimo and Niphlod. 
>>>
>>>
>>> On Thu, Oct 4, 2012 at 10:32 PM, Massimo Di Pierro wrote:
>>>
>>>> No. this should not be a problem. This is only be a problem if any two 
>>>> have the same connection string.
>>>>
>>>>
>>>> On Thursday, 4 October 2012 21:10:58 UTC-5, Adi wrote:
>>>>
>>>>> I'm using 6 connections at the same time, 3 go to different databases 
>>>>> on the same server, and 3 to totally different servers. Each connection 
>>>>> has 
>>>>> a different name
>>>>>
>>>>> db = DAL('mysql://crm:password@**localhost:3307/CRM',migrate_**
>>>>> enabled=True)
>>>>> db_us = 
>>>>> DAL('mysql://web_US:password@**localhost:3307/DataUS',**migrate_enabled=False,
>>>>>  
>>>>> fake_migrate_all=True)
>>>>> db_ca = DAL('mysql://web_CA:password@**localhost:3307/DataCA', 
>>>>> migrate_enabled=False, fake_migrate_all=True)
>>>>> ...
>>>>>
>>>>> Could something like this be a problem:
>>>>> In a scheduler function, based on application that inserted a task, I 
>>>>> assign relevant connection to another object to use?
>>>>>  
>>>>> if application='ca':
>>>>>     db_front_end = db_ca 
>>>>> elif application='us':
>>>>>     db_front_end = db_us
>>>>>
>>>>> use db_front_end to retrieve data and perform scheduled task
>>>>>
>>>>>
>>>>> On Thu, Oct 4, 2012 at 9:42 PM, Massimo Di Pierro <
>>>>> massimo....@gmail.com> wrote:
>>>>>
>>>>>> This error can arise in two cases:
>>>>>> - you are using an a recent trunk version (not the latest) which has 
>>>>>> a bug
>>>>>> - you are using the latest trunk (no bug) but you have a duplicated 
>>>>>> connection in your code:
>>>>>>
>>>>>> db = DAL(....)
>>>>>> db = DAL(....)
>>>>>>
>>>>>> perhaps in different model files. Previous web2py did not check and 
>>>>>> allowed you to have two connections to the same database. We found this 
>>>>>> is 
>>>>>> often source or errors. The new web2py checks and does not allow you to 
>>>>>> do 
>>>>>> it. Your would get the error you see.
>>>>>>
>>>>>>
>>>>>> On Thursday, 4 October 2012 14:42:59 UTC-5, Adi wrote:
>>>>>>
>>>>>>> We promoted latest night build to production, and scheduler started 
>>>>>>> failing. At the same time there were some code changes, so I'm having a 
>>>>>>> hard time tracing the source of the problem.
>>>>>>>
>>>>>>> Any insights while I'm trying to figure it out?
>>>>>>>
>>>>>>> Thanks,
>>>>>>> Adi
>>>>>>>
>>>>>>> db: mysql
>>>>>>> redhat linux
>>>>>>> w2p: Version 2.0.9 (2012-10-02 03:55:58) dev
>>>>>>>
>>>>>>> scheduler_run table: traceback field:
>>>>>>> Traceback (most recent call last):
>>>>>>>   File "/opt/web-apps/web2py/gluon/**sc**heduler.py", line 203, in 
>>>>>>> executor
>>>>>>>     _env = env(a=a,c=c,import_models=**True**)
>>>>>>>   File "/opt/web-apps/web2py/gluon/**sh**ell.py", line 134, in env
>>>>>>>     sys.exit(1)
>>>>>>> SystemExit: 1
>>>>>>>
>>>>>>>
>>>>>>> scheduler log:
>>>>>>> /opt/web-apps/web2py/gluon/**dal**.py:6597: DeprecationWarning: 
>>>>>>> object.__new__() takes no parameters
>>>>>>>   db = super(DAL, cls).__new__(cls, uri, *args, **kwargs)
>>>>>>> web2py Web Framework
>>>>>>> Created by Massimo Di Pierro, Copyright 2007-2012
>>>>>>> Version 2.0.9 (2012-10-02 03:55:58) dev
>>>>>>> Database drivers available: SQLite(sqlite3), MySQL(pymysql), 
>>>>>>> PostgreSQL(pg8000), IMAP(imaplib)
>>>>>>> starting single-scheduler for "crm"...
>>>>>>> Traceback (most recent call last):
>>>>>>>   File "/opt/web-apps/web2py/gluon/**re**stricted.py", line 209, in 
>>>>>>> restricted
>>>>>>>     exec ccode in environment
>>>>>>>   File "applications/crm/models/db.**py**", line 47, in <module>
>>>>>>>     db = DAL('mysql://crm:password@**loca**lhost:3307/CRM',migrate_*
>>>>>>> *enable**d=False, fake_migrate_all=True)
>>>>>>>   File "/opt/web-apps/web2py/gluon/**da**l.py", line 6595, in 
>>>>>>> __new__
>>>>>>>     raise RuntimeError, 'Cannot duplicate a Singleton'
>>>>>>> RuntimeError: Cannot duplicate a Singleton
>>>>>>>
>>>>>>>  -- 
>>>>>>  
>>>>>>  
>>>>>>  
>>>>>>
>>>>>
>>>>>
>>>>>  -- 
>>>>  
>>>>  
>>>>  
>>>>
>>>
>>>
>>>
>>>

-- 



Reply via email to