Hallo Brad,

... thanks for the reply. The original post went under 6 weeks ago and I 
had forgotten it, sorry. We currently have a culprit and a work around, and 
your half right.  The postgres in the backend was running out of 
connections and the errors were not getting to the client. The culprit is 
that a defer db.Close() that was working with 1.4.2 and under certain 
conditions didn't under 1.6.2. The workaround was to explicitly close the 
database connection after every request which works but is not optimal. The 
question is why the defer no longer functioned? Previously each request 
from the client triggered the backend request to the db and completed. We 
can see when it functions but haven't found a way to trap when it should 
but didn't. We can see that the proxy is packing everything into a single 
stream but don't see the relevance. HTTP2 is new for us. If you have any 
immediate suggestions they would gratefully received. However, as Andras 
has indicated, we should be moving to Gowut 1.x.x. This means moving 70000+ 
LOC to a new naming system. We have been delaying hoping to use the new 
"alias" feature. This could take some months. We have a workaround and if 
the problems is present after the update we can take it up again.

Rgs, Nigel Vickers


On Thursday, 27 October 2016 23:17:38 UTC+2, bradfitz wrote:
>
> That isn't an http2 panic. That's just the http2 code recovering your 
> Handler's panic and printing it, the same as the http1 server does.
>
> Your panic is actually somewhere in:
>
> lib.setupC5Tab(0x7f6fbe169d20, 0xc8201b0d20, 0xc820436d98, 0x7f6fbe169d20, 
> 0xc8201b0dc0, 0x7f6fbe16a2a8, 0xc820339e60, 0x7f6fbe16a5f8, 0xc8201b0e60, 
> 0xc82047be20)
>         /home/sysop/go/src/lib/rhewocompstatus.go:1310 +0x3976
> lib.BuildRhewoStatus.func4(0x7f6fbe117538, 0xc8205bc300)
>         /home/sysop/go/src/lib/rhewocompstatus.go:168 +0xc8
> github.com/icza/gowut/gwu.handlerFuncWrapper.HandleEvent(0xc82040b5c0, 
> 0x7f6fbe117538, 0xc8205bc300)
>         /home/sysop/go/src/github.com/icza/gowut/gwu/event.go:441 +0x3e
> github.com/icza/gowut/gwu.(*compImpl).dispatchEvent(0xc820158770, 
> 0x7f6fbe117538, 0xc8205bc300)
>         /home/sysop/go/src/github.com/icza/gowut/gwu/comp.go:307 +0x167
> github.com/icza/gowut/gwu.(*timerImpl).dispatchEvent(0xc820158770, 
> 0x7f6fbe117538, 0xc8205bc300)
>         <autogenerated>:1302 +0x60
> github.com/icza/gowut/gwu.(*serverImpl).handleEvent(0xc82019e900, 
> 0x7f6fbe1172c0, 0xc8202fa7e0, 0x7f6fbe169998, 0xc8202b4ff0, 0x7f6fbe117170, 
> 0xc82007c2a0, 0xc820148460)
>         /home/sysop/go/src/github.com/icza/gowut/gwu/server.go:815 +0x103e
> github.com/icza/gowut/gwu.(*serverImpl).serveHTTP(0xc82019e900, 
> 0x7f6fbe117170, 0xc82007c2a0, 0xc820148460)
>         /home/sysop/go/src/github.com/icza/gowut/gwu/server.go:683 +0x1544
> github.com/icza/gowut/gwu.(*serverImpl).Start.func1(0x7f6fbe117170, 
> 0xc82007c2a0, 0xc820148460)
>         /home/sysop/go/src/github.com/icza/gowut/gwu/server.go:483 +0x4c
>
>
> On Thu, Oct 6, 2016 at 3:29 AM, Nigel Vickers <rhe...@gmail.com 
> <javascript:>> wrote:
>
>> We are migrating an application from go 1.4.1 to 1.6.2. The application 
>> uses a modified Gowut 0.9 as the framework and initially moved without 
>> issue. The application server runs behind a tls sni 
>> proxy/loadbalancer(slt). While running slt at 1.4.1 and the server at 1.6.2 
>> no problems were encountered. We assume because 1.4.1 couldn’t http2. After 
>> moving the slt to 1.6.2 we are experiencing runtime panics with 
>> http2(protocol attached). Two questions:
>>
>> Is the statement that http2 should just run still applicable?
>> And
>> Are use cases that fail still of interest as issues?
>>
>> We have a “provisional trigger” .  A client xmlHttpRequest triggered by 
>> an attached javascript timer requests a component update and reload from 
>> the server. Currently at 10 second intervals.
>> Irregularly, between the 90th and 99th request the server panics.
>>
>> We are bit stuck because we have no experience with http2. Any 
>> suggestions on how to proceed would be welcome.
>>
>> Nigel Vickers
>>
>>   
>> Rhewo Dev2016/10/05 14:14:24 serveHTTP Incoming: request Path 
>>  /mainAppWin/e
>> Rhewo Dev2016/10/05 14:14:24 serveHTTP Incoming: request Body 
>>  &{0xc8205ba120 0xc8200f5180 false 0xc8204e8d00 false}
>> SessionDump &{LUP_NiaDLsjBFLOpsSUKLa false {63611263456 268951715 
>> 0xf36ee0} {63611266464 12850383 0xf36ee0} map[mainAppWin:0xc8202b4ff0] 
>> map[groups:[free admin] module:Status Lang:de hiddenPan:0xc820476000 
>> ips:xx.xx.xx.xx user:fred2 auth:auth] 14400000000000 0xc820303f20}
>> Rhewo Dev2016/10/05 14:14:24 serveHTTP appName Parts   3 [ mainAppWin e]
>> Rhewo Dev2016/10/05 14:14:24    Event from comp: 932  event: 15
>> 2016/10/05 14:14:24 http2: panic serving xxx.xxx.xxx.xxx:49337: runtime 
>> error: index out of range
>> goroutine 2962 [running]:
>> net/http.(*http2serverConn).runHandler.func1(0xc82053df3f, 0xc8200f5180, 
>> 0xc82007c2a0)
>>         /usr/local/go/src/net/http/h2_bundle.go:4050 +0xde
>> panic(0xb24060, 0xc82000e0d0)
>>         /usr/local/go/src/runtime/panic.go:443 +0x521
>> lib.setupC5Tab(0x7f6fbe169d20, 0xc8201b0d20, 0xc820436d98, 
>> 0x7f6fbe169d20, 0xc8201b0dc0, 0x7f6fbe16a2a8, 0xc820339e60, 0x7f6fbe16a5f8, 
>> 0xc8201b0e60, 0xc82047be20)
>>         /home/sysop/go/src/lib/rhewocompstatus.go:1310 +0x3976
>> lib.BuildRhewoStatus.func4(0x7f6fbe117538, 0xc8205bc300)
>>         /home/sysop/go/src/lib/rhewocompstatus.go:168 +0xc8
>> github.com/icza/gowut/gwu.handlerFuncWrapper.HandleEvent(0xc82040b5c0, 
>> 0x7f6fbe117538, 0xc8205bc300)
>>         /home/sysop/go/src/github.com/icza/gowut/gwu/event.go:441 +0x3e
>> github.com/icza/gowut/gwu.(*compImpl).dispatchEvent(0xc820158770, 
>> 0x7f6fbe117538, 0xc8205bc300)
>>         /home/sysop/go/src/github.com/icza/gowut/gwu/comp.go:307 +0x167
>> github.com/icza/gowut/gwu.(*timerImpl).dispatchEvent(0xc820158770, 
>> 0x7f6fbe117538, 0xc8205bc300)
>>         <autogenerated>:1302 +0x60
>> github.com/icza/gowut/gwu.(*serverImpl).handleEvent(0xc82019e900, 
>> 0x7f6fbe1172c0, 0xc8202fa7e0, 0x7f6fbe169998, 0xc8202b4ff0, 0x7f6fbe117170, 
>> 0xc82007c2a0, 0xc820148460)
>>         /home/sysop/go/src/github.com/icza/gowut/gwu/server.go:815 
>> +0x103e
>> github.com/icza/gowut/gwu.(*serverImpl).serveHTTP(0xc82019e900, 
>> 0x7f6fbe117170, 0xc82007c2a0, 0xc820148460)
>>         /home/sysop/go/src/github.com/icza/gowut/gwu/server.go:683 
>> +0x1544
>> github.com/icza/gowut/gwu.(*serverImpl).Start.func1(0x7f6fbe117170, 
>> 0xc82007c2a0, 0xc820148460)
>>         /home/sysop/go/src/github.com/icza/gowut/gwu/server.go:483 +0x4c
>> net/http.HandlerFunc.ServeHTTP(0xc82006d450, 0x7f6fbe117170, 
>> 0xc82007c2a0, 0xc820148460)
>>         /usr/local/go/src/net/http/server.go:1618 +0x48
>> net/http.(*ServeMux).ServeHTTP(0xc820070b10, 0x7f6fbe117170, 
>> 0xc82007c2a0, 0xc820148460)
>>         /usr/local/go/src/net/http/server.go:1910 +0x213
>> net/http.serverHandler.ServeHTTP(0xc8200e4200, 0x7f6fbe117170, 
>> 0xc82007c2a0, 0xc820148460)
>>         /usr/local/go/src/net/http/server.go:2081 +0x207
>> net/http.initNPNRequest.ServeHTTP(0xc8201d4300, 0xc8200e4200, 
>> 0x7f6fbe117170, 0xc82007c2a0, 0xc820148460)
>>         /usr/local/go/src/net/http/server.go:2489 +0x351
>> net/http.(*initNPNRequest).ServeHTTP(0xc8201d8b20, 0x7f6fbe117170, 
>> 0xc82007c2a0, 0xc820148460)
>>         <autogenerated>:253 +0xdb
>> net/http.(Handler).ServeHTTP-fm(0x7f6fbe117170, 0xc82007c2a0, 0xc820
>>         /usr/local/go/src/net/http/h2_bundle.go:3847 +0x5e
>> net/http.(*http2serverConn).runHandler(0xc8200f5180, 0xc82007c2a0, 0
>>         /usr/local/go/src/net/http/h2_bundle.go:4060 +0xad
>> created by net/http.(*http2serverConn).processHeaderBlockFragment
>>         /usr/local/go/src/net/http/h2_bundle.go:3853 +0x7c3
>>
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "golang-nuts" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to golang-nuts...@googlegroups.com <javascript:>.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to