there's no way .table files are created but tables aren't ... please triple 
check your settings ....

On Sunday, December 20, 2015 at 9:28:39 PM UTC+1, Gael Princivalle wrote:
>
> Now tables files are created in the database folder, but tables are not 
> created in the postgress DB.
> Error in always the same when I try to open a table from the 
> administration interface.
>
> ProgrammingError: relation "scheduler_worker" does not exist
> LINE 1: SELECT count(*) FROM "scheduler_worker" WHERE ("scheduler_wo...
>
>
> About migrations my db is like that:
> db = DAL('postgres://user:pass@localhost:5432/postg_db', 
> check_reserved=['all'], pool_size=1, entity_quoting=True, bigint_id=True, 
> migrate=True, fake_migrate_all=True)
>
> And I've saw also that in the complete scheduler signature you can set 
> migrate to True so in scheduler.py I have:
> Scheduler(db, dict(e_db=e_db, update_products_auto=update_products_auto, 
> sitemap_txt_auto=sitemap_txt_auto), migrate=True)
>
> PostgreSQL tables are not created.
> So this is a desperate attempt, deleting all scheduler and create it 
> again. I've done it for resolving this scheduler problem, it don't runs for 
> all my old four applications that I've moved with "pack all" from 2.9.12. 
> version to this 2.12.3 version. DB's are new. I've moved data with 
> export/import linux commands, pg_dump, psql.
>
> And for new applications scheduler runs.
>
> How can I make the debug of it?
>
> Thanks.
>
>
> Il giorno domenica 20 dicembre 2015 13:51:45 UTC+1, Niphlod ha scritto:
>>
>> you just had to delete corresponding .table files. scheduler tables are 
>> created as soon as the scheduler is istantiated, unless migrations are 
>> turned off.
>>
>> On Friday, December 18, 2015 at 4:17:48 PM UTC+1, Gael Princivalle wrote:
>>>
>>> No I don't.
>>>
>>> But now I have:
>>> Dropped all tables in the database folder
>>> Delete all scheduler tables in the postgress database.
>>> Delete the scheduler
>>> Create the scheduler.
>>> I still have the same db error, for example for workers:
>>>
>>> SELECT count(*) FROM "scheduler_worker" WHERE ("scheduler_wo...
>>>
>>> table files are created but not for scheduler tables
>>> scheduler tables in postgress db are not created.
>>>
>>> Do you know why?
>>>
>>> Il giorno venerdì 18 dicembre 2015 15:48:06 UTC+1, Niphlod ha scritto:
>>>>
>>>> when you dropped tables, did you remember to delete the corresponding 
>>>> *.table files from the databases/ folder ?
>>>>
>>>> On Friday, December 18, 2015 at 12:47:38 PM UTC+1, Gael Princivalle 
>>>> wrote:
>>>>>
>>>>> >scheduler tables can be dropped manually
>>>>> Done
>>>>>
>>>>> >deleting scheduler.py also.
>>>>> Done
>>>>>
>>>>> >But I still don't think that it's the way to fix the issue you're 
>>>>> facing.
>>>>> Well I'm not able to understand which is this problem, as when I 
>>>>> create a scheduler in a new app tasks are running.
>>>>> For the moment creating a new scheduler is my better idea, if you have 
>>>>> a better one thanks.
>>>>>
>>>>> Anyway now I've got this error when I try to open the scheduler table, 
>>>>> for example scheduler_task.
>>>>> My db string have now migrate=True, fake_migrate_all=True.
>>>>> My only other idea is rebuild all the app starting from a new one, but 
>>>>> if I can resolve it in a shorter way I prefer.
>>>>>
>>>>>     Traceback (most recent call last):
>>>>>   File 
>>>>> "/home/tasko/webapps/w2p_2_12_3/web2py/applications/hydrover_oleodinamica/controllers/appadmin.py",
>>>>>  line 238, in select
>>>>>     nrows = db(query).count()
>>>>>   File 
>>>>> "/home/tasko/webapps/w2p_2_12_3/web2py/gluon/packages/dal/pydal/objects.py",
>>>>>  line 1992, in count
>>>>>     return db._adapter.count(self.query,distinct)
>>>>>   File 
>>>>> "/home/tasko/webapps/w2p_2_12_3/web2py/gluon/packages/dal/pydal/adapters/base.py",
>>>>>  line 1311, in count
>>>>>     self.execute(self._count(query, distinct))
>>>>>   File 
>>>>> "/home/tasko/webapps/w2p_2_12_3/web2py/gluon/packages/dal/pydal/adapters/postgres.py",
>>>>>  line 360, in execute
>>>>>     return BaseAdapter.execute(self, *a, **b)
>>>>>   File 
>>>>> "/home/tasko/webapps/w2p_2_12_3/web2py/gluon/packages/dal/pydal/adapters/base.py",
>>>>>  line 1378, in execute
>>>>>     return self.log_execute(*a, **b)
>>>>>   File 
>>>>> "/home/tasko/webapps/w2p_2_12_3/web2py/gluon/packages/dal/pydal/adapters/base.py",
>>>>>  line 1372, in log_execute
>>>>>     ret = self.cursor.execute(command, *a[1:], **b)
>>>>> ProgrammingError: relation "scheduler_task" does not exist
>>>>> LINE 1: SELECT count(*) FROM "scheduler_task" WHERE ("scheduler_task...
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> Il giorno venerdì 18 dicembre 2015 11:58:15 UTC+1, Niphlod ha scritto:
>>>>>>
>>>>>> scheduler tables can be dropped manually
>>>>>> deleting scheduler.py also.
>>>>>> But I still don't think that it's the way to fix the issue you're 
>>>>>> facing.
>>>>>>
>>>>>> On Friday, December 18, 2015 at 11:22:57 AM UTC+1, Gael Princivalle 
>>>>>> wrote:
>>>>>>>
>>>>>>> >delete what ? the istantiation ? 
>>>>>>>
>>>>>>> Delete the scheduler.py file from models and all scheduler tables.
>>>>>>> How can I do it?
>>>>>>>
>>>>>>> Il giorno venerdì 18 dicembre 2015 10:48:23 UTC+1, Niphlod ha 
>>>>>>> scritto:
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Friday, December 18, 2015 at 10:45:22 AM UTC+1, Gael Princivalle 
>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>> I've set a scheduler in a new application and tasks are running.
>>>>>>>>>
>>>>>>>>> So probably there's a problem when a app comes from a previous 
>>>>>>>>> web2py version.
>>>>>>>>>
>>>>>>>>
>>>>>>>> as long as you let migration happen, no issues whatsoever.
>>>>>>>>  
>>>>>>>>
>>>>>>>>> Anyway I think it can be resolved deleting the scheduler and 
>>>>>>>>> create it again, but I've tried to:
>>>>>>>>> Killing the worker - Ok
>>>>>>>>> Delete Scheduler Ko
>>>>>>>>>
>>>>>>>>> When I delete the scheduler.py file from admin web2py creates it 
>>>>>>>>> again.
>>>>>>>>>
>>>>>>>>> How can I delete the scheduler?
>>>>>>>>>
>>>>>>>>
>>>>>>>> delete what ? the istantiation ? 
>>>>>>>>  
>>>>>>>>
>>>>>>>>>
>>>>>>>>> Thanks, regards.
>>>>>>>>>
>>>>>>>>> Il giorno giovedì 17 dicembre 2015 21:40:36 UTC+1, Gael 
>>>>>>>>> Princivalle ha scritto:
>>>>>>>>>>
>>>>>>>>>> Thanks Niphlod.
>>>>>>>>>>
>>>>>>>>>> >So, here it is the breakdown of the possible issues:
>>>>>>>>>> >- are tasks QUEUED or ASSIGNED ?
>>>>>>>>>> QUEUED. But if I set the net run time to now + 2 minutes I can 
>>>>>>>>>> check that task don't run.
>>>>>>>>>> Status options don't have ASSIGNED.
>>>>>>>>>>
>>>>>>>>>> >If they are QUEUED, either they can't be executed yet (i.e. 
>>>>>>>>>> start_time in the future) or tasks are queued with a group_name that 
>>>>>>>>>> can't 
>>>>>>>>>> be processed by a worker . 
>>>>>>>>>> Main group for all.
>>>>>>>>>>
>>>>>>>>>> *>Check #1: there should be a scheduler_task row with group_name 
>>>>>>>>>> "in" scheduler_worker group_names*
>>>>>>>>>> >- if tasks SHOULD be ASSIGNED but remain on QUEUED status, no 
>>>>>>>>>> worker is running or workers can't agree on who is "the ticker".
>>>>>>>>>> Well worker is running and main is the group_name.
>>>>>>>>>>
>>>>>>>>>> *>Check #2 (there should be a scheduler_worker with is_ticker = 
>>>>>>>>>> True)*
>>>>>>>>>> Yes it have.
>>>>>>>>>>
>>>>>>>>>> Check is complete. I think I will cancel the scheduler and create 
>>>>>>>>>> it again. Thanks for your help.
>>>>>>>>>>
>>>>>>>>>> Il giorno giovedì 17 dicembre 2015 21:21:56 UTC+1, Niphlod ha 
>>>>>>>>>> scritto:
>>>>>>>>>>>
>>>>>>>>>>> I thought more people liked to see the code : I find myself 
>>>>>>>>>>> explaining scheduler internals more often than I'd like to :P
>>>>>>>>>>>
>>>>>>>>>>> soooooooooo. worker names.... worker names are used to identify 
>>>>>>>>>>> a worker process (it's enforced as unique in the model)...
>>>>>>>>>>> I'll reply to some ideal "FAQ" questions....
>>>>>>>>>>> - Why worker names are important ? Because tasks ASSIGNED to a 
>>>>>>>>>>> worker_name (assigned_worker_name in scheduler_task) get 
>>>>>>>>>>> processed by that worker, and that worker only
>>>>>>>>>>> - Who chooses worker names ? the worker itself. It does so 
>>>>>>>>>>> concatenating the hostname and the PID, which results in a good 
>>>>>>>>>>> (and 
>>>>>>>>>>> unique) way to identify a process.
>>>>>>>>>>> - Who chooses that task "foo" gets processed by worker "bar" ? A 
>>>>>>>>>>> worker. It's when tasks from QUEUED go to the ASSIGNED status... 
>>>>>>>>>>> The worker 
>>>>>>>>>>> that does this is "the ticker". The ticker is "elected" with a dumb 
>>>>>>>>>>> (and 
>>>>>>>>>>> slow) - but reliable - algorithm among workers: it's the only one 
>>>>>>>>>>> that can 
>>>>>>>>>>> "assign" tasks (either to itself or to other workers). The only 
>>>>>>>>>>> thing that 
>>>>>>>>>>> blocks a ticker to assign tasks to a worker is the group_name.
>>>>>>>>>>>
>>>>>>>>>>> So, here it is the breakdown of the possible issues:
>>>>>>>>>>> - are tasks QUEUED or ASSIGNED ? If they are QUEUED, either they 
>>>>>>>>>>> can't be executed yet (i.e. start_time in the future) or tasks are 
>>>>>>>>>>> queued 
>>>>>>>>>>> with a group_name that can't be processed by a worker . 
>>>>>>>>>>> *Check #1: there should be a scheduler_task row with group_name 
>>>>>>>>>>> "in" scheduler_worker group_names*
>>>>>>>>>>> - if tasks SHOULD be ASSIGNED but remain on QUEUED status, no 
>>>>>>>>>>> worker is running or workers can't agree on who is "the ticker". 
>>>>>>>>>>> *Check #2 (there should be a scheduler_worker with is_ticker = 
>>>>>>>>>>> True)*
>>>>>>>>>>> That should be it.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Note: if tasks are ASSIGNED to a worker that isn't there anymore 
>>>>>>>>>>> (i.e. is dead or, in your case, you changed hosting facility) it's 
>>>>>>>>>>> not an 
>>>>>>>>>>> issue. Any worker, periodically, checks if ALL other workers are 
>>>>>>>>>>> alive (and 
>>>>>>>>>>> kicking) and if a worker isn't kicking it's removed from the 
>>>>>>>>>>> scheduler_worker table AND all tasks ASSIGNED to it gets 
>>>>>>>>>>> redistributed 
>>>>>>>>>>> among live workers. This in addition to the ticker redistributing 
>>>>>>>>>>> tasks 
>>>>>>>>>>> every once in a while if they're ready to be executed but not 
>>>>>>>>>>> executed yet 
>>>>>>>>>>> (it can, and it does happen, that a worker is busy processing a 
>>>>>>>>>>> long-running task while there are other tasks ready to be processed 
>>>>>>>>>>> (by 
>>>>>>>>>>> other workers). Every worker gets a fair chance of doing something 
>>>>>>>>>>> useful 
>>>>>>>>>>> instead of sleeping)
>>>>>>>>>>>
>>>>>>>>>>> On Thursday, December 17, 2015 at 9:02:11 PM UTC+1, Gael 
>>>>>>>>>>> Princivalle wrote:
>>>>>>>>>>>>
>>>>>>>>>>>> Hello to all.
>>>>>>>>>>>>
>>>>>>>>>>>> I've migrate my webfaction hosting to another webfaction 
>>>>>>>>>>>> hosting that run CentOS 7 (before it was a previous version of 
>>>>>>>>>>>> CentOS).
>>>>>>>>>>>> I was running web2py 2.9.12, now I have web2py 2.12.3.
>>>>>>>>>>>>
>>>>>>>>>>>> I've got a strange problem with the scheduler.
>>>>>>>>>>>>
>>>>>>>>>>>> Workers are in the db, they run, they are assigned to tasks, 
>>>>>>>>>>>> but tasks don't run.
>>>>>>>>>>>> When I've created new workers tasks have not take automatically 
>>>>>>>>>>>> the worker name. I've put all worker names by myself.
>>>>>>>>>>>>
>>>>>>>>>>>> Perhaps the problem is due to the worker names.
>>>>>>>>>>>> In the previous hosting they were like that:
>>>>>>>>>>>> s18060957#14459
>>>>>>>>>>>>
>>>>>>>>>>>> And now they have the webserver name:
>>>>>>>>>>>> web490.webfaction.com#12949
>>>>>>>>>>>>
>>>>>>>>>>>> web2py seems to codify the webserver name, but in this new 
>>>>>>>>>>>> configuration it don't.
>>>>>>>>>>>> Is it why Scheduler don't run tasks?
>>>>>>>>>>>> How I can resolve that?
>>>>>>>>>>>>
>>>>>>>>>>>> Thanks, regards.
>>>>>>>>>>>>
>>>>>>>>>>>

-- 
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