public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug go/48312] New: [4.7 regression] http, rpc, websocket tests hang on Solaris 2/x86
@ 2011-03-28 10:50 ro at gcc dot gnu.org
  2011-03-28 16:11 ` [Bug go/48312] " ian at airs dot com
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: ro at gcc dot gnu.org @ 2011-03-28 10:50 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48312

           Summary: [4.7 regression] http, rpc, websocket tests hang on
                    Solaris 2/x86
           Product: gcc
           Version: 4.7.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: go
        AssignedTo: ian@airs.com
        ReportedBy: ro@gcc.gnu.org
              Host: i386-pc-solaris2.1[01]
            Target: i386-pc-solaris2.1[01]
             Build: i386-pc-solaris2.1[01]


Created attachment 23789
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=23789
Minimal patch to get fd_rtems.go to compile.

After the latest libgo import, the network-related libgo tests hang on Solaris
10
and 11/x86.  To even get libgo to compile, I needed the attached patch to
fd_rtems.go (which should better be called fd_select.go since this is what it
really is).

Even after that, the http, rpc, and websocket tests just hang in select, as can
be seen in the pstack output from the http test:

8131:    ./a.out
-----------------  lwp# 1 / thread# 1  --------------------
 fe35b3ab lwp_park (0, 0, 0)
 fe354e03 cond_wait_queue (de221678, de221660, 0, fe355329) + 63
 fe3553a1 __cond_wait (de221678, de221660, 8045158, fe3553e9) + 89
 fe3553f7 cond_wait (de221678, de221660, 80451a8, fe35542d) + 27
 fe355442 pthread_cond_wait (de221678, de221660, 80451c8, fe3f7500, 18,
8045100) + 24
 fe64467c __go_receive_acquire (de221660, 0, 8045218, fe641cb9, 80451f8,
80451f8) + 7c
 fe6447f1 __go_receive_small_closed (de221660, 0, 0, fe87d6c0, 16) + 41
 fe64489d __go_receive_small (de221660, de22c500, 0, 809eaea, 14, 1) + 2d
 fe7fd1cd libgo_testing.testing.RunTests (8088b38, de222240, 30, 30, fefa0810,
fee70018) + 21d
 fe7fd481 libgo_testing.testing.Main (8088b38, de222240, 30, 30, de20ebf0, 0) +
81
 08088cb4 main.main (4d9060de, 8045720, 80453f0, feffb93c, 8045400, de200000) +
48
 080958ef main     (1, 8045434, 804543c, 8045428, 80640c2, 80956f0) + 1df
 08064123 _start   (1, 8045788, 0, 8045790, 804579e, 80457aa) + 83
-----------------  lwp# 24 / thread# 24  --------------------
 fe35b3ab lwp_park (0, 0, 0)
 fe354e03 cond_wait_queue (de217f68, de217f50, 0, fe355329) + 63
 fe3553a1 __cond_wait (de217f68, de217f50, cdefea68, fe3553e9) + 89
 fe3553f7 cond_wait (de217f68, de217f50, de217f50, fe35542d) + 27
 fe355442 pthread_cond_wait (de217f68, de217f50, 5a5b497, 321, 8056414, 100) +
24
 fe64467c __go_receive_acquire (de217f50, 0, 0, 807e3b8, cdefeb00, fefc0744) +
7c
 fe643d4e __go_receive_big (de217f50, cdefeb50, de229300, fe6494b7, fedf3f40,
de234f20) + 3e
 080809b2 libgo_http.http.roundTrip.pN27_libgo_http.http.persistConn (cdefec08,
de23f840, de229300, 4, 809c52c, 4) + 112
 0807e6b9 libgo_http.http.RoundTrip.pN25_libgo_http.http.Transport (cdefeccc,
de20eb60, de229300, fe6494b7, de230005, 11) + 301
 0806b2c3 http.send (cdefedb8, de229300, 80a4268, de20eb60, 0, fe3f3000) + 249
 0806b5d6 libgo_http.http.Get.pN22_libgo_http.http.Client (cdefee38, de200568,
de234f60, 16, cdf00a3c, 0) + 1de
 0806b38d libgo_http.http.Get (cdefeee8, de230000, 16, fe350f13, 0, fe3f3000) +
4e
 08088f87 go.http_test.TestClient (de22c5d0, 0, fee60200, fe353c8c, fe87d6c0,
fe8cb584) + 89
 fe7fc595 testing.tRunner (de22c5d0, de222348, fe87d6c0, 80bc468, fe8cb584,
fe87d6c0) + 25
 fe7fc25a testing.$thunk0 (de22c5e0, fe3f3000, cdefefd8, fe35a535, fe3f9e00,
fee62000) + 1a
 fe641b41 start_go_thread (de21b380, fe3f3000, cdefefe8, fe35b079) + 81
 fe35b0cc _thrp_setup (cdf00a40) + 9d
 fe35b370 _lwp_start (cdf00a40, 0, 0, 0, 0, 0)
-----------------  lwp# 25 / thread# 25  --------------------
 fe35f4a7 pollsys  (ce00ed00, 1, 0, 0)
 fe30afeb pselect  (5, de22a000, 0, 0, 0, 0) + 193
 fe30b2f1 select   (5, de22a000, 0, 0, 0, fefc0744) + 79
 fe7fb3f1 libgo_syscalls.syscall.Select (ce00ee40, 5, de22a000, de22a080, 0, 0)
+ 41
 fe6b9301 libgo_net.net.WaitFD.pN22_libgo_net.net.pollster (ce00ef14, de2300a0,
de201570, 0, 0, fe3f3000) + 221
 fe6c1515 libgo_net.net.Run.pN24_libgo_net.net.pollServer (de201570, 0,
fe87d6c0, 80bc440, fe8cb584, fe87d6c0) + e5
 fe6b5843 net.$thunk0 (de232288, fe3f3000, ce00efd8, fe35a535, fe3f9e00,
fee62000) + 13
 fe641b41 start_go_thread (de23f140, fe3f3000, ce00efe8, fe35b079) + 81
 fe35b0cc _thrp_setup (cdf00240) + 9d
 fe35b370 _lwp_start (cdf00240, 0, 0, 0, 0, 0)
-----------------  lwp# 26 / thread# 26  --------------------
 fe35b3ab lwp_park (0, 0, 0)
 fe354e03 cond_wait_queue (de221b58, de221b40, 0, fe355329) + 63
 fe3553a1 __cond_wait (de221b58, de221b40, cddffc58, fe3553e9) + 89
 fe3553f7 cond_wait (de221b58, de221b40, cddffc98, fe35542d) + 27
 fe355442 pthread_cond_wait (de221b58, de221b40, 1, fe87d6c0, 72, fe87d6c0) +
24
 fe64467c __go_receive_acquire (de221b40, 0, fe50f9e3, fef70018, 3, 0) + 7c
 fe6447f1 __go_receive_small_closed (de221b40, 0, 0, fe87d6c0, de229280) + 41
 fe64489d __go_receive_small (de221b40, de229200, 72, de201570, fe87d6c0,
de229280) + 2d
 fe6ba741 libgo_net.net.WaitRead.pN24_libgo_net.net.pollServer (de201570,
de229280, de232540, 9db, fe436940, feff0100) + 41
 fe6ba81f libgo_net.net.accept.pN19_libgo_net.net.netFD (cddffde4, de229280,
fe6b8780, 316, 8056364, cddfff20) + cf
 fe6c1b2a libgo_net.net.AcceptTCP.pN25_libgo_net.net.TCPListener (cddffe24,
de2322e0, fefa0810, 7e8, fe7e3939, cddffe90) + 4a
 fe6c1bd8 libgo_net.net.Accept.pN25_libgo_net.net.TCPListener (cddffe90,
de2322e0, 0, 1, 100000, fe9e6560) + 28
 fe7e3939 libgo_http.httptest.Accept.pN35_libgo_http.httptest.historyListener
(cddfff20, de230020, de232538, fe35284f, fe3f9e0c, 0) + 39
 0807b92e libgo_http.http.Serve.pN22_libgo_http.http.Server (cddfff68,
de234fa0, fe92b23c, de230020, fe8cb584, 0) + 7b
 fe7e383e httptest.$thunk0 (de22c220, fe3f3000, cddfffd8, fe35a535, fe3f9e00,
fee62000) + 2e
 fe641b41 start_go_thread (de23f180, fe3f3000, cddfffe8, fe35b079) + 81
 fe35b0cc _thrp_setup (cdf01240) + 9d
 fe35b370 _lwp_start (cdf01240, 0, 0, 0, 0, 0)
-----------------  lwp# 27 / thread# 27  --------------------
 fe35b3ab lwp_park (0, 0, 0)
 fe354e03 cond_wait_queue (de23da38, de23da20, 0, fe355329) + 63
 fe3553a1 __cond_wait (de23da38, de23da20, cdd00c08, fe3553e9) + 89
 fe3553f7 cond_wait (de23da38, de23da20, cdd00c48, fe35542d) + 27
 fe355442 pthread_cond_wait (de23da38, de23da20, fe46451b, fe87d6c0, 72,
fe87d6c0) + 24
 fe64467c __go_receive_acquire (de23da20, 0, 10, de23e010, 6, 0) + 7c
 fe6447f1 __go_receive_small_closed (de23da20, 0, 0, fe87d6c0, de229380) + 41
 fe64489d __go_receive_small (de23da20, de229300, 72, fe87d6c0, fe87d6c0,
cdd00d28) + 2d
 fe6ba741 libgo_net.net.WaitRead.pN24_libgo_net.net.pollServer (de201570,
de229380, de22b000, 1000, 1000, fe3f3000) + 41
 fe6bb954 libgo_net.net.Read.pN19_libgo_net.net.netFD (cdd00d84, de229380,
de22b000, 1000, 1000, 3) + 1f4
 fe6c211e libgo_net.net.Read.pN21_libgo_net.net.TCPConn (cdd00e14, de232530,
de22b000, 1000, 1000, fee70018) + 7e
 fe65ecba libgo_bufio.bufio.fill.pN24_libgo_bufio.bufio.Reader (de201510, 0, 0,
0, 0, 80bc4b8) + 10a
 fe66094b libgo_bufio.bufio.Peek.pN24_libgo_bufio.bufio.Reader (cdd00f0c,
de201510, 1, fe352811, fe3f9e0c, 1000000) + fb
 080805a1 libgo_http.http.readLoop.pN27_libgo_http.http.persistConn (de23f840,
0, fe87d6c0, 80bc4b8, fe8cb584, fe87d6c0) + 35
 08084ced http.$thunk35 (de232668, fe3f3000, cdd00fd8, fe35a535, fe3f9e00,
fee62000) + 18
 fe641b41 start_go_thread (de23f880, fe3f3000, cdd00fe8, fe35b079) + 81
 fe35b0cc _thrp_setup (cdf01a40) + 9d
 fe35b370 _lwp_start (cdf01a40, 0, 0, 0, 0, 0)

Don't know yet what I'm overlooking here, I probably got the locking wrong.


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug go/48312] [4.7 regression] http, rpc, websocket tests hang on Solaris 2/x86
  2011-03-28 10:50 [Bug go/48312] New: [4.7 regression] http, rpc, websocket tests hang on Solaris 2/x86 ro at gcc dot gnu.org
@ 2011-03-28 16:11 ` ian at airs dot com
  2011-03-28 18:38 ` ian at gcc dot gnu.org
  2011-03-28 18:49 ` ian at airs dot com
  2 siblings, 0 replies; 4+ messages in thread
From: ian at airs dot com @ 2011-03-28 16:11 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48312

Ian Lance Taylor <ian at airs dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |ASSIGNED
   Last reconfirmed|                            |2011.03.28 15:51:34
     Ever Confirmed|0                           |1

--- Comment #1 from Ian Lance Taylor <ian at airs dot com> 2011-03-28 15:51:34 UTC ---
Sorry, I forgot about this issue when I updated the library.


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug go/48312] [4.7 regression] http, rpc, websocket tests hang on Solaris 2/x86
  2011-03-28 10:50 [Bug go/48312] New: [4.7 regression] http, rpc, websocket tests hang on Solaris 2/x86 ro at gcc dot gnu.org
  2011-03-28 16:11 ` [Bug go/48312] " ian at airs dot com
@ 2011-03-28 18:38 ` ian at gcc dot gnu.org
  2011-03-28 18:49 ` ian at airs dot com
  2 siblings, 0 replies; 4+ messages in thread
From: ian at gcc dot gnu.org @ 2011-03-28 18:38 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48312

--- Comment #2 from ian at gcc dot gnu.org <ian at gcc dot gnu.org> 2011-03-28 18:35:56 UTC ---
Author: ian
Date: Mon Mar 28 18:35:53 2011
New Revision: 171623

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=171623
Log:
    PR go/48312
Fix fd_select.go for changes in FD handling.

We have to wake up the goroutine waiting in select each time
we change the set of descriptors we are waiting for, unlike
epoll.

Modified:
    trunk/libgo/go/net/fd.go
    trunk/libgo/go/net/fd_linux.go
    trunk/libgo/go/net/fd_select.go
    trunk/libgo/go/net/newpollserver.go
    trunk/libgo/go/net/newpollserver_rtems.go


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug go/48312] [4.7 regression] http, rpc, websocket tests hang on Solaris 2/x86
  2011-03-28 10:50 [Bug go/48312] New: [4.7 regression] http, rpc, websocket tests hang on Solaris 2/x86 ro at gcc dot gnu.org
  2011-03-28 16:11 ` [Bug go/48312] " ian at airs dot com
  2011-03-28 18:38 ` ian at gcc dot gnu.org
@ 2011-03-28 18:49 ` ian at airs dot com
  2 siblings, 0 replies; 4+ messages in thread
From: ian at airs dot com @ 2011-03-28 18:49 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48312

Ian Lance Taylor <ian at airs dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|                            |FIXED

--- Comment #3 from Ian Lance Taylor <ian at airs dot com> 2011-03-28 18:36:37 UTC ---
Fixed.


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2011-03-28 18:36 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-03-28 10:50 [Bug go/48312] New: [4.7 regression] http, rpc, websocket tests hang on Solaris 2/x86 ro at gcc dot gnu.org
2011-03-28 16:11 ` [Bug go/48312] " ian at airs dot com
2011-03-28 18:38 ` ian at gcc dot gnu.org
2011-03-28 18:49 ` ian at airs dot com

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).