On Sun, 2010-08-08 at 02:16 -0700, Khem Raj wrote: > On Sun, Aug 8, 2010 at 2:05 AM, Khem Raj <[email protected]> wrote: > > On Sun, Aug 8, 2010 at 1:44 AM, Khem Raj <[email protected]> wrote: > >> On Tue, Jun 15, 2010 at 2:51 PM, Cliff Brake <[email protected]> wrote: > >>> On Tue, Jun 15, 2010 at 5:42 PM, Cliff Brake <[email protected]> > >>> wrote: > >>>> On Thu, Jun 3, 2010 at 5:17 AM, Richard Purdie <[email protected]> wrote: > >>>>> On Wed, 2010-06-02 at 12:38 -0400, Cliff Brake wrote: > >>>>>> I ran into some issues with srctree that are fixed by the following. > >>>>>> Not sure if this is the correct, or valid fix, but perhaps someone can > >>>>>> review: > >>>>>> > >>>>>> http://cgit.bec-systems.com/cgit.cgi/bitbake/commit/?h=cbrake/1.10-srctree-fixes&id=c6fe73d986d596dca7f76bd277cf279cd5c21308 > >>>>> > >>>>> This is just a bandaid over a bigger problem. > >>>>> > >>>>> The question is why the task isn't in that list. It should be either > >>>>> returning success or failure once and that code should work. So it > >>>>> sounds like a reference counting type issue and the question is why > >>>>> srctree is breaking the refcounting? > >>>>> > >>>>> I'd really like to get to the underlying problem. Do you have a complete > >>>>> event log for a case when this happens? Are the number of > >>>>> starts/succeeds/fails balanced? I know you uncommented the "print event" > >>>>> debug line and this info should help understand whats going on. > >>>> > >>>> cbr...@happy:/scratch/oe/oe-build/bitbake$ bitbake -DDDD autotools-demo > >>>> > x2 > >>>> Traceback (most recent call last): > >>>> File "/scratch/oe/oe-build/bitbake/bin/bitbake", line 203, in <module> > >>>> ret = main() > >>>> File "/scratch/oe/oe-build/bitbake/bin/bitbake", line 194, in main > >>>> return_value = ui_init(serverConnection.connection, > >>>> serverConnection.events) > >>>> File "/scratch/oe/oe-build/bitbake/lib/bb/ui/knotty.py", line 62, in > >>>> init > >>>> helper.eventHandler(event) > >>>> File "/scratch/oe/oe-build/bitbake/lib/bb/ui/uihelper.py", line 31, > >>>> in eventHandler > >>>> del self.running_tasks[event.pid] > >>>> KeyError: 19335 > >>>> > >>>> Logs are available below: > >>>> > >>>> http://bec-systems.com/oe/srctree_DDDD.txt > >>>> http://bec-systems.com/oe/srctree_events.txt > >>>> > >>>> This is very easy to duplicate: > >>>> > >>>> cd <oe meta data>/recipes/ > >>>> git clone git://git.bec-systems.com/autotools-demo > >>>> cd - > >>>> bitbake autotools-demo > >>>> > >>>> Note, you have to do a clean between bitbakes, or the problem goes away. > >>> > >>> As to unbalanced Start/Succeeded, the > >>> > >>> NOTE: package autotools-demo-1.1-r0: task do_populate_sysroot: Started > >>> > >>> is Started, but I don't ever see a Succeeded. > >> > >> yes thats the problem. The event that kills it is infact the task > >> success event of do_populate_sysroot > >> and this is the task thats rewired by srctree and is the master task > >> to encapsulate all other tasks > >> that need to be run in serial order > >> > >> NOTE: package autotools-demo-1.1-r0: task do_compile: Succeeded > >> <bb.msg.MsgNote instance at 0x21d6950> > >> NOTE: autotools-demo-1.1-r0: executing task do_install > >> <bb.build.TaskStarted instance at 0x21d6a70> > >> NOTE: package autotools-demo-1.1-r0: task do_install: Started > >> <bb.build.TaskSucceeded instance at 0x21d6a28> > >> NOTE: package autotools-demo-1.1-r0: task do_install: Succeeded > >> <bb.build.TaskSucceeded instance at 0x21d6998> > >> =================================> this is the last event > >> FATAL: Unable to start to 'knotty' UI: 27221 > >> NOTE: Tasks Summary: Attempted 2 tasks of which 0 didn't need to be > >> rerun and 0 failed. > >> FATAL: Traceback (most recent call last): > >> File "/home/kraj/work/oe/bitbake/bin/bitbake", line 212, in <module> > >> ret = main() > >> File "/home/kraj/work/oe/bitbake/bin/bitbake", line 202, in main > >> return_value = ui_init(serverConnection.connection, > >> serverConnection.events) > >> File "/home/kraj/work/oe/bitbake/lib/bb/ui/knotty.py", line 62, in init > >> helper.eventHandler(event) > >> File "/home/kraj/work/oe/bitbake/lib/bb/ui/uihelper.py", line 31, in > >> eventHandler > >> del self.running_tasks[event.pid] > >> KeyError: 27221 > > > > > > btw. I also changed srctree to not override do_populate_sysroot for > > encapsulation but created a new > > funcion and inserted it after do_populate_sysroot this time it > > complete do_populate_sysroot but died > > in similar fashion when event of successful completion of this new > > task came in the end. > > > > So it seems something to do with the task the bb spawned and this > > happens to be the task that > > srctree used to encapsulate all other tasks it needed to. > > hmmm srctree uses exec_task to execute the tasks it needs to inside > this one mega task (encapsulation task) > and thats causing this problem. If I change exec_task() call to > exec_func() all works well. > > remains to be seen is whats difference between exec_func and exec_task > I am going to sleep now and will find out tomorrow would much prefer > if someone could clarify earlier :) RP, Chris ?
Nothing in the metadata should be using exec_task() as it breaks bitbake's assumptions about threading, task dependencies and so forth. The exec_func() will work as that is effectively what exec_task() calls but the "tasks" will lose out on task specific overrides and will share a common datastore, not a copy. Cheers, Richard _______________________________________________ Bitbake-dev mailing list [email protected] https://lists.berlios.de/mailman/listinfo/bitbake-dev
