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