On Fri, Apr 12, 2013 at 10:30:42PM +0100, Richard Purdie wrote: > On Fri, 2013-04-12 at 23:10 +0200, Martin Jansa wrote: > > On Fri, Apr 12, 2013 at 09:16:51PM +0100, Paul Eggleton wrote: > > > Fix the fairly long-standing problem of treating a newer bblayers.conf > > > in the same manner as an older one (reporting that it had been updated > > > even if nothing was done). The recent work to do a reparse without > > > having to manually re-run bitbake turned this from an annoyance into an > > > endless loop, so it had to be fixed. > > > > Is this endless loop, bitbake hanging forever while parsing or was it > > showing something or failing soon with endless loop detected by python? > > You'd see nothing at all, you'd run "bitbake X" and it would just sit > there indefinitely in a loop. > > It could be triggered by including meta-yocto but not setting > DISTRO=poky* in a build dir where DISTRO=poky* has previously been used.
OK, so it's different than hangs I'm seeing here, because I'm still seeing them
with latest oe-core
$ . ./oe-init-bitbake-build-env && bitbake my-image
Altered environment for machine@distro development (this is from
oe-init-bitbake-build-env)
# and nothing else is shown after that
ps auxf (shortened paths and ascii tree)
bitbake 17625 0.0 0.0 4396 612 pts/18 S+ 18:31 0:00 \_ /bin/sh -c
. ./oe-init-bitbake-build-env && bitbake my-image
bitbake 17626 0.0 0.0 4396 700 pts/18 S+ 18:31 0:00 \_ /bin/sh
/OE/build/oe-core/scripts/bitbake my-image
bitbake 17656 0.2 1.0 219356 168120 pts/18 S+ 18:31 0:02 \_
python /OE/build/bitbake/bin/bitbake my-image
bitbake 18504 0.0 1.0 289044 166556 pts/18 Sl+ 18:31 0:00 \_
python /OE/build/bitbake/bin/bitbake my-image
Not sure if there is better way to see what's going on in those python
processes, here is strace:
# strace -p 17656
Process 17656 attached
wait4(18504,
# strace -p 18504
Process 18504 attached
recvfrom(12,
Hitting Ctrl+C with strace still running:
# strace -p 17656
Process 17656 attached
wait4(18504, 0x7fffd2abdf80, 0, NULL) = ? ERESTARTSYS (To be restarted if
SA_RESTART is set)
--- SIGINT {si_signo=SIGINT, si_code=SI_KERNEL, si_value={int=12337,
ptr=0x3031}} ---
wait4(18504,
Process 18504 attached
recvfrom(12, 0xb773684, 8192, 0, 0, 0) = ? ERESTARTSYS (To be restarted if
SA_RESTART is set)
--- SIGINT {si_signo=SIGINT, si_code=SI_KERNEL, si_value={int=12337,
ptr=0x3031}} ---
rt_sigreturn() = -1 EINTR (Interrupted system call)
futex(0xb16e5a0, FUTEX_WAIT_PRIVATE, 0, NULL
More Ctrl+C only repeats it in both processes but bitbake does not quit
One more python process is created and disowned by parent and becames child of
init and dies later
bitbake 18524 0.0 1.0 289044 165128 ? S 18:31 0:00 python
/OE/build/bitbake/bin/bitbake my-image
but bitbake is still hanging until I send kill 18504 from another terminal
Process 18504:
futex(0xb16e5a0, FUTEX_WAIT_PRIVATE, 0, NULL) = ? ERESTARTSYS (To be restarted
if SA_RESTART is set)
--- SIGINT {si_signo=SIGINT, si_code=SI_KERNEL, si_value={int=12337,
ptr=0x3031}} ---
rt_sigreturn() = -1 EINTR (Interrupted system call)
futex(0xb16e5a0, FUTEX_WAIT_PRIVATE, 0, NULL) = ? ERESTARTSYS (To be restarted
if SA_RESTART is set)
--- SIGTERM {si_signo=SIGTERM, si_code=SI_USER, si_pid=23837, si_uid=1026} ---
+++ killed by SIGTERM +++
Process 17656: (iirc you said that python-logging module is not safe with
multiple processes and it looks like logging something)
# strace -p 17656
Process 17656 attached
wait4(18504, 0x7fffd2abdf80, 0, NULL) = ? ERESTARTSYS (To be restarted if
SA_RESTART is set)
--- SIGINT {si_signo=SIGINT, si_code=SI_KERNEL, si_value={int=12337,
ptr=0x3031}} ---
wait4(18504, 0x7fffd2abdf80, 0, NULL) = ? ERESTARTSYS (To be restarted if
SA_RESTART is set)
--- SIGINT {si_signo=SIGINT, si_code=SI_KERNEL, si_value={int=12337,
ptr=0x3031}} ---
read(4, "\200\2clogging\nLogRecord\nq\1)\201q\2}q\3(U"..., 554) = 554
select(5, [4], NULL, NULL, {0, 0}) = 1 (in [4], left {0, 0})
read(4, "\0\0\2\34", 4) = 4
read(4, "\200\2clogging\nLogRecord\nq\1)\201q\2}q\3(U"..., 540) = 540
select(5, [4], NULL, NULL, {0, 0}) = 1 (in [4], left {0, 0})
read(4, "\0\0\2&", 4) = 4
read(4, "\200\2clogging\nLogRecord\nq\1)\201q\2}q\3(U"..., 550) = 550
select(5, [4], NULL, NULL, {0, 0}) = 1 (in [4], left {0, 0})
read(4, "\0\0\2\32", 4) = 4
read(4, "\200\2clogging\nLogRecord\nq\1)\201q\2}q\3(U"..., 538) = 538
select(5, [4], NULL, NULL, {0, 0}) = 1 (in [4], left {0, 0})
read(4, "\0\0\2$", 4) = 4
read(4, "\200\2clogging\nLogRecord\nq\1)\201q\2}q\3(U"..., 548) = 548
select(5, [4], NULL, NULL, {0, 0}) = 1 (in [4], left {0, 0})
read(4, "\0\0\2!", 4) = 4
read(4, "\200\2clogging\nLogRecord\nq\1)\201q\2}q\3(U"..., 545) = 545
select(5, [4], NULL, NULL, {0, 0}) = 1 (in [4], left {0, 0})
read(4, "\0\0\2+", 4) = 4
read(4, "\200\2clogging\nLogRecord\nq\1)\201q\2}q\3(U"..., 555) = 555
select(5, [4], NULL, NULL, {0, 0}) = 1 (in [4], left {0, 0})
read(4, "\0\0\2)", 4) = 4
read(4, "\200\2clogging\nLogRecord\nq\1)\201q\2}q\3(U"..., 553) = 553
select(5, [4], NULL, NULL, {0, 0}) = 1 (in [4], left {0, 0})
read(4, "\0\0\0023", 4) = 4
read(4, "\200\2clogging\nLogRecord\nq\1)\201q\2}q\3(U"..., 563) = 563
select(5, [4], NULL, NULL, {0, 0}) = 1 (in [4], left {0, 0})
read(4, "\0\0\2#", 4) = 4
read(4, "\200\2clogging\nLogRecord\nq\1)\201q\2}q\3(U"..., 547) = 547
select(5, [4], NULL, NULL, {0, 0}) = 1 (in [4], left {0, 0})
read(4, "\0\0\2-", 4) = 4
read(4, "\200\2clogging\nLogRecord\nq\1)\201q\2}q\3(U"..., 557) = 557
select(5, [4], NULL, NULL, {0, 0}) = 1 (in [4], left {0, 0})
read(4, "\0\0\2\36", 4) = 4
read(4, "\200\2clogging\nLogRecord\nq\1)\201q\2}q\3(U"..., 542) = 542
select(5, [4], NULL, NULL, {0, 0}) = 1 (in [4], left {0, 0})
read(4, "\0\0\2(", 4) = 4
read(4, "\200\2clogging\nLogRecord\nq\1)\201q\2}q\3(U"..., 552) = 552
select(5, [4], NULL, NULL, {0, 0}) = 1 (in [4], left {0, 0})
read(4, "\0\0\2*", 4) = 4
read(4, "\200\2clogging\nLogRecord\nq\1)\201q\2}q\3(U"..., 554) = 554
select(5, [4], NULL, NULL, {0, 0}) = 1 (in [4], left {0, 0})
read(4, "\0\0\2$", 4) = 4
read(4, "\200\2clogging\nLogRecord\nq\1)\201q\2}q\3(U"..., 548) = 548
select(5, [4], NULL, NULL, {0, 0}) = 1 (in [4], left {0, 0})
read(4, "\0\0\2.", 4) = 4
read(4, "\200\2clogging\nLogRecord\nq\1)\201q\2}q\3(U"..., 558) = 558
select(5, [4], NULL, NULL, {0, 0}) = 1 (in [4], left {0, 0})
read(4, "\0\0\2\37", 4) = 4
read(4, "\200\2clogging\nLogRecord\nq\1)\201q\2}q\3(U"..., 543) = 543
select(5, [4], NULL, NULL, {0, 0}) = 1 (in [4], left {0, 0})
read(4, "\0\0\2\7", 4) = 4
read(4, "\200\2clogging\nLogRecord\nq\1)\201q\2}q\3(U"..., 519) = 519
select(5, [4], NULL, NULL, {0, 0}) = 1 (in [4], left {0, 0})
read(4, "\0\0\2\37", 4) = 4
read(4, "\200\2clogging\nLogRecord\nq\1)\201q\2}q\3(U"..., 543) = 543
select(5, [4], NULL, NULL, {0, 0}) = 1 (in [4], left {0, 0})
read(4, "\0\0\2\7", 4) = 4
read(4, "\200\2clogging\nLogRecord\nq\1)\201q\2}q\3(U"..., 519) = 519
select(5, [4], NULL, NULL, {0, 0}) = 1 (in [4], left {0, 0})
read(4, "\0\0\2\36", 4) = 4
read(4, "\0\0\2q", 4) = 4
read(4, "\200\2clogging\nLogRecord\nq\1)\201q\2}q\3(U"..., 625) = 625
select(5, [4], NULL, NULL, {0, 0}) = 1 (in [4], left {0, 0})
read(4, "\0\0\2R", 4) = 4
read(4, "\200\2clogging\nLogRecord\nq\1)\201q\2}q\3(U"..., 594) = 594
select(5, [4], NULL, NULL, {0, 0}) = 1 (in [4], left {0, 0})
read(4, "\0\0\2=", 4) = 4
read(4, "\200\2clogging\nLogRecord\nq\1)\201q\2}q\3(U"..., 573) = 573
select(5, [4], NULL, NULL, {0, 0}) = 1 (in [4], left {0, 0})
read(4, "\0\0\2r", 4) = 4
read(4, "\200\2clogging\nLogRecord\nq\1)\201q\2}q\3(U"..., 626) = 626
select(5, [4], NULL, NULL, {0, 0}) = 1 (in [4], left {0, 0})
read(4, "\0\0\2S", 4) = 4
read(4, "\200\2clogging\nLogRecord\nq\1)\201q\2}q\3(U"..., 595) = 595
select(5, [4], NULL, NULL, {0, 0}) = 1 (in [4], left {0, 0})
read(4, "\0\0\2>", 4) = 4
read(4, "\200\2clogging\nLogRecord\nq\1)\201q\2}q\3(U"..., 574) = 574
select(5, [4], NULL, NULL, {0, 0}) = 1 (in [4], left {0, 0})
read(4, "\0\0\2l", 4) = 4
read(4, "\200\2clogging\nLogRecord\nq\1)\201q\2}q\3(U"..., 620) = 620
select(5, [4], NULL, NULL, {0, 0}) = 1 (in [4], left {0, 0})
read(4, "\0\0\2M", 4) = 4
read(4, "\200\2clogging\nLogRecord\nq\1)\201q\2}q\3(U"..., 589) = 589
select(5, [4], NULL, NULL, {0, 0}) = 1 (in [4], left {0, 0})
read(4, "\0\0\0028", 4) = 4
read(4, "\200\2clogging\nLogRecord\nq\1)\201q\2}q\3(U"..., 568) = 568
select(5, [4], NULL, NULL, {0, 0}) = 0 (Timeout)
close(6) = 0
close(4) = 0
rt_sigaction(SIGINT, {SIG_DFL, [], SA_RESTORER, 0x2aaaaaf27cb0}, {SIG_IGN, [],
SA_RESTORER, 0x2aaaaaf27cb0}, 8) = 0
rt_sigaction(SIGTERM, {SIG_DFL, [], SA_RESTORER, 0x2aaaaaf27cb0}, {0x45190f,
[], SA_RESTORER, 0x2aaaaaf27cb0}, 8) = 0
close(7) = 0
munmap(0x2aaaaac18000, 32) = 0
munmap(0x2aaaaac10000, 32) = 0
munmap(0x2aaaaab78000, 32) = 0
munmap(0x2aaaaab70000, 32) = 0
munmap(0x2aaaaab80000, 32) = 0
munmap(0x2aaaaab68000, 32) = 0
close(5) = 0
munmap(0x2aaaaab58000, 32) = 0
munmap(0x2aaaaab60000, 32) = 0
close(8) = 0
close(9) = 0
exit_group(1) = ?
+++ exited with 1 +++
I'll put this in bug report later, but if you see what other information could
be useful,
I'll add it next time I see bitbake hanging like this (it doesn't happen every
time, probably more
with machine under higher load).
Happens in my gentoo chroot with
Python 2.7.3 (default, Mar 19 2013, 08:59:58)
[GCC 4.7.2] on linux2
as well as in ubuntu-12.10 chroot with
Python 2.7.3 (default, Sep 26 2012, 21:51:14)
[GCC 4.7.2] on linux2
both using latest oe-core+bitbake.
--
Martin 'JaMa' Jansa jabber: [email protected]
signature.asc
Description: Digital signature
_______________________________________________ Openembedded-core mailing list [email protected] http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
