| 1 | <br><br><div class="gmail_quote">2010/6/1 Parrot <span dir="ltr"><<a href="mailto:parrot-tickets@lists.parrot.org">parrot-tickets@lists.parrot.org</a>></span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"> |
|---|
| 2 | #1670: t/library/lwp.t fails after parallel build<br> |
|---|
| 3 | ----------------------+-----------------------------------------------------<br> |
|---|
| 4 | Reporter: doughera | Owner:<br> |
|---|
| 5 | Type: bug | Status: new<br> |
|---|
| 6 | Priority: normal | Milestone:<br> |
|---|
| 7 | Component: none | Version: 2.4.0<br> |
|---|
| 8 | Severity: medium | Keywords:<br> |
|---|
| 9 | Lang: | Patch:<br> |
|---|
| 10 | Platform: |<br> |
|---|
| 11 | ----------------------+-----------------------------------------------------<br> |
|---|
| 12 | I am getting the following strange failure with t/library/lwp.t, but only<br> |
|---|
| 13 | if I build with {{{make -j 6}}} (or greater). The test succeeds if I<br> |
|---|
| 14 | build with {{{make -j 5}}}.<br> |
|---|
| 15 | <br> |
|---|
| 16 | The failure looks like this:<br> |
|---|
| 17 | <br> |
|---|
| 18 | {{{<br> |
|---|
| 19 | 1..48<br> |
|---|
| 20 | ok 1 - new ['LWP';'UserAgent']<br> |
|---|
| 21 | ok 2 - new ['LWP';'Protocol';'file']<br> |
|---|
| 22 | ok 3 - isa ['LWP';'Protocol']<br> |
|---|
| 23 | ok 4 - new ['LWP';'Protocol';'http']<br> |
|---|
| 24 | ok 5 - isa ['LWP';'Protocol']<br> |
|---|
| 25 | ok 6 - new ['HTTP';'Request']<br> |
|---|
| 26 | ok 7 - isa ['HTTP';'Message']<br> |
|---|
| 27 | ok 8 - new ['HTTP';'Response']<br> |
|---|
| 28 | ok 9 - isa ['HTTP';'Message']<br> |
|---|
| 29 | "load_bytecode" no file name<br> |
|---|
| 30 | current instr.: 'parrot;HTTP;Date;time2str' pc 8<br> |
|---|
| 31 | (runtime/parrot/library/HTTP/Message.pir:31)<br> |
|---|
| 32 | called from Sub 'parrot;LWP;UserAgent;_new_response' pc 1445<br> |
|---|
| 33 | (/dev/shm/parrot/runtime/parrot/library/LWP/UserAgent.pir:528)<br> |
|---|
| 34 | called from Sub 'parrot;LWP;UserAgent;send_request' pc 210<br> |
|---|
| 35 | (/dev/shm/parrot/runtime/parrot/library/LWP/UserAgent.pir:74)<br> |
|---|
| 36 | called from Sub 'parrot;LWP;UserAgent;request' pc 406<br> |
|---|
| 37 | (/dev/shm/parrot/runtime/parrot/library/LWP/UserAgent.pir:133)<br> |
|---|
| 38 | called from Sub 'test_unknown_protocol' pc 273 (t/library/lwp.t:68)<br> |
|---|
| 39 | called from Sub 'main' pc 51 (t/library/lwp.t:27)<br> |
|---|
| 40 | }}}<br> |
|---|
| 41 | <br> |
|---|
| 42 | Running the whole thing under strace, the load bytecode is failing because<br> |
|---|
| 43 | it's calling<br> |
|---|
| 44 | {{{<br> |
|---|
| 45 | fstat(1275397164, 0x7fffffffd1c0) = -1 EBADF (Bad file descriptor)<br> |
|---|
| 46 | }}}<br> |
|---|
| 47 | where it looks like that first argument to fstat() may have come from a<br> |
|---|
| 48 | previous call to time().<br> |
|---|
| 49 | <br> |
|---|
| 50 | I have been able to reproduce this problem on a quad-core x86 and on a<br> |
|---|
| 51 | dual-core amd64. Both were running Debian Linux "Lenny" (aka "stable").<br> |
|---|
| 52 | <br> |
|---|
| 53 | I have attached the script I used to reproduce the failures, and a tar<br> |
|---|
| 54 | file showing the different outputs of<br> |
|---|
| 55 | {{{make}}},<br> |
|---|
| 56 | {{{ ./parrot t/library/lwp.t}}}, and<br> |
|---|
| 57 | {{{ strace ./parrot t/library/lwp.t}}}.<br> |
|---|
| 58 | <br> |
|---|
| 59 | I vaguely suspect that the recent shuffling of some ops out of core means<br> |
|---|
| 60 | that some library wasn't available when it was needed, though why that<br> |
|---|
| 61 | didn't result in a build failure is a mystery to me.<br> |
|---|
| 62 | <br> |
|---|
| 63 | This particular run was at r47170, though I first noticed this problem<br> |
|---|
| 64 | with r47059, and it could be even older than that.<br> |
|---|
| 65 | <font color="#888888"><br> |
|---|
| 66 | --<br> |
|---|
| 67 | Ticket URL: <<a href="https://trac.parrot.org/parrot/ticket/1670" target="_blank">https://trac.parrot.org/parrot/ticket/1670</a>><br> |
|---|
| 68 | Parrot <<a href="https://trac.parrot.org/parrot/" target="_blank">https://trac.parrot.org/parrot/</a>><br> |
|---|
| 69 | Parrot Development<br> |
|---|
| 70 | _______________________________________________<br> |
|---|
| 71 | parrot-tickets mailing list<br> |
|---|
| 72 | <a href="mailto:parrot-tickets@lists.parrot.org">parrot-tickets@lists.parrot.org</a><br> |
|---|
| 73 | <a href="http://lists.parrot.org/mailman/listinfo/parrot-tickets" target="_blank">http://lists.parrot.org/mailman/listinfo/parrot-tickets</a><br> |
|---|
| 74 | </font></blockquote></div><br><br>I think it is another opcode mixture (see TT #1663),<br>because the subroutine time2str() doesn't use the opcode load_bytecode.<br><br>François<br><br> |
|---|