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

Reply via email to