[epoint] go panic panic

From: <info_AT_x-dsl.hu>
Date: Wed, 11 Jul 2012 10:54:43 +0200

Szervusztok,

A market (devizagráf offer-nyilvántartó, körkereső váltó) elvileg
alapszinten kész, csak nem tudunk olyan kulcsot csinálni amit a go
server elfogad, ezért nem tudjuk tesztelni.

gpg kulcsokat próbáltunk bepostolni a
http://epoint.vems.hu:1111/form.html serverre (legújabb kód fut, május
24-én deployolva)

Sima gpg kulcsokra (próbáltunk DSA, RSA, mindenfélét) a go server
általában ezt a hibát adta:
add keys failed: Check: no valid userid was found
dsatool-al generált kulccsal (eljárás a
http://eleg.hu/tiki/tiki-index.php?page=EpointSystemIssuerGpg lap alján,
hogy gpg megegye a dsatool által kiirt kulcsot) pedig:
add keys failed: OpenPGP data invalid: entity without any identities
(that was with a dsatool generated key imported into gpg and exported to
ascii)

Az én tippem: a holder kulcsoknak hivatkozni kell DEFAULT devizára (egy
meglevo issuer key -re), az issuer key-nek pedig denominációt kell adni,
akkor biztosan elfogadja...
gpg "edit uuid" -val kapcsolatos tippet elfogadunk erre vonatkozóan.
gpg --edit
adduid
Hol találom a pontos formátumot, követelményeket (ill. ha kitalálom,
hova írjam) ? issuer key-nél elég az fpr, vagy kell valami körítés ?

======
Aztán amikor a go server saját pubkey-ét próbáltam bepostolni (
10.8.21.252:37566 -rol) , akkor leállt a server panic-al, de mikor
megnéztem a logot, kiderült, hogy az már a sokadik panic volt (a saját
pubkey- bepostolás csak az utolsó csepp lehetett a pohárban), és
ráadásul Fefe kezdte ! A 80.99.68.142 Fefe IP címe:
Fefe: "A 80.99.68.142 Én voltam, igen, de nem tudom, ez épp mi volt
(párszor posztoltam be hülyeséget)"
Úgy látom az időbélyeg helyi időben van, majd TZ=UTC-vel kell futtatni,
de ez most részletkérdés.

Any idea ?

grep panic paniclog/server.err

2012/07/11 02:19:32 http: panic serving 80.99.68.142:2634: runtime
error: slice bounds out of range
panic: reflect·call(d->fn, d->args, d->siz);
panicstring: runtime·panic(err);
panicslice: runtime·panicstring("slice bounds out of range");
slicestring: runtime·panicslice();
2012/07/11 02:19:32 http: panic serving 80.99.68.142:2637: runtime
error: slice bounds out of range
panic: reflect·call(d->fn, d->args, d->siz);
panicstring: runtime·panic(err);
panicslice: runtime·panicstring("slice bounds out of range");
slicestring: runtime·panicslice();
2012/07/11 02:19:46 http: panic serving 80.99.68.142:2638: runtime
error: slice bounds out of range
panic: reflect·call(d->fn, d->args, d->siz);
panicstring: runtime·panic(err);
panicslice: runtime·panicstring("slice bounds out of range");
slicestring: runtime·panicslice();
2012/07/11 02:19:46 http: panic serving 80.99.68.142:2639: runtime
error: slice bounds out of range
panic: reflect·call(d->fn, d->args, d->siz);
panicstring: runtime·panic(err);
panicslice: runtime·panicstring("slice bounds out of range");
slicestring: runtime·panicslice();
2012/07/11 02:20:30 http: panic serving 80.99.68.142:2642: runtime
error: slice bounds out of range
panic: reflect·call(d->fn, d->args, d->siz);
panicstring: runtime·panic(err);
panicslice: runtime·panicstring("slice bounds out of range");
slicestring: runtime·panicslice();
2012/07/11 02:20:30 http: panic serving 80.99.68.142:2644: runtime
error: slice bounds out of range
panic: reflect·call(d->fn, d->args, d->siz);
panicstring: runtime·panic(err);
panicslice: runtime·panicstring("slice bounds out of range");
slicestring: runtime·panicslice();
2012/07/11 09:40:47 http: panic serving 10.8.21.252:37566: runtime
error: slice bounds out of range
panic: reflect·call(d->fn, d->args, d->siz);
panicstring: runtime·panic(err);
panicslice: runtime·panicstring("slice bounds out of range");
slicestring: runtime·panicslice();
2012/07/11 09:40:54 http: panic serving 10.8.21.252:37569: runtime
error: slice bounds out of range
panic: reflect·call(d->fn, d->args, d->siz);
panicstring: runtime·panic(err);
panicslice: runtime·panicstring("slice bounds out of range");
slicestring: runtime·panicslice();


Szabolcs, adnék egy kis zsét. Jó a Hurok u-ban ? Vagy vitessem az Üllői
út másik oldalára ?

MÁS:
Nézegettem a hot-replika témakört: http://www.drbd.org/ supports
synchronous (blockdevice-level) replication (of course there is some
performance penalty of transmitting whole 4kB blocks through the network
instead of just the changed ~1kB key-value ), BUT surprisingly
http://wiki.postgresql.org/wiki/Streaming_Replication interesting:
"supports only asynchronous log-shipping. The commit command might
return a "success" to a client before the corresponding XLOG records are
shipped to the standby." => So postgresql might (=will) lose transactions.

Valszeg majd felveszünk 2 file-stream output kimenetet.
* (ajánlatom: 20 eFt) Az egyikbe csak a megváltoztatott (kreált) fileok
neveit írjuk ki (ez egyszeru, akár az stdout-ra is mehet, úgy nézem most
oda ugysem ir semmit),
** a másikba pedig a beleirt adatot is megfelelő "framing"-el.
(ajánlatom: 200 eFt, amibol 40 eFt a kiiras, +50 eFt a visszaolvasás,
+110 eft ha vissza is tudja az alapján játszani és létrehozni
ugyanazokat a permanens adatstrukturákat, mint amiket normál üzem közben
is létrehozott volna )
* (ajánlatom: 30 eFt) A több millió file egy könyvtárban megoldás túl
kockázatos, (még annál is kockázatosabb, mint ha btrfs-t használnánk)
ezért Prefix (vagy inkább a pgp kulcsoknál szokásos módon suffix
szerint) 4E/BF/23/.... könyvtárba rendezzük

Ha van esetleg nagyobb anyagi elmaradás (sajnos az eddigi
projektszervezésről keveset tudok), akkor azt állnám, pl. súlyozottan
beleblendelnénk a fenti 3 feladatba (ha jól sejtem, meg is duplázza az
összegeket 250eFt =>500 eFt), viszont ahhoz át kell nézzük a
hozzátartozó újrafuttatható tesztet (beleértve egy kis stress-teszt
legalább 2 gépről, logikailag 20 párhuzamos klienssel órákon át)
nyomatnunk rá (mondjuk 45%utalás + 10%kibocsátás + 45% ilyenolyan
lekérdezés).

De most az UUID kérdés (gpg opciók) a legégetőbb, hogy Fefe tudjon
haladni a piaccal,
és a panic kérdése (nem tudom, az mennyire súlyos).

köszi, üdv,
Marcell


=====================================
TELJES LOG:
2012/07/09 12:06:38 start dispatch
2012/07/09 12:06:38 start service on :1111, server key id:
4918FCDBFBB20D9A5543D7039F6A188286670BCF
2012/07/11 01:38:57 80.99.68.142:2366 POST /submit params:[draft debit key]
2012/07/11 01:38:57 error: 404 eval draft failed: not found:
key/13F6F3BA3F9E3D6D2EB0D4C7EF85EF97D8CB54FA
2012/07/11 01:39:41 80.99.68.142:2366 POST /submit params:[draft debit key]

2012/07/11 01:44:58 error: 404 eval debit failed: OpenPGP data invalid:
tag byte does not have MSB set
2012/07/11 02:18:59 80.99.68.142:2634 POST /submit params:[draft debit key]
2012/07/11 02:18:59 error: 404 eval draft failed: not found:
key/EC964C1A7E1681D70577770DF3666E9DBF97A9C4
2012/07/11 02:19:32 80.99.68.142:2634 POST /submit params:[draft debit key]
2012/07/11 02:19:32 80.99.68.142:2637 POST /submit params:[key draft debit]
2012/07/11 02:19:32 http: panic serving 80.99.68.142:2634: runtime
error: slice bounds out of range
/n/svn/go/src/pkg/net/http/server.go:578 (0x44aa13)
_func_002: buf.Write(debug.Stack())
/n/svn/go/src/pkg/runtime/proc.c:1386 (0x410f6b)
panic: reflect·call(d->fn, d->args, d->siz);
/n/svn/go/src/pkg/runtime/runtime.c:128 (0x411a37)
panicstring: runtime·panic(err);
/n/svn/go/src/pkg/runtime/runtime.c:91 (0x411908)
panicslice: runtime·panicstring("slice bounds out of range");
/n/svn/go/src/pkg/runtime/zstring_amd64.c:252 (0x4171d0)
slicestring: runtime·panicslice();
/n/svn/epoint/pkg/key/key.go:200 (0x41d840)
Check: if id.UserId.Name[:len(prefix)] == prefix {
/n/svn/epoint/pkg/server/server.go:109 (0x41df81)
AddKeys: isIssuer, issuer, denom, err1 := key.Check(e)
/n/svn/epoint/cmd/epoint-server/epoint-server.go:71 (0x401755)
submitHandler: err := server.AddKeys([]byte(key))
/n/svn/go/src/pkg/net/http/server.go:688 (0x43f101)
HandlerFunc.ServeHTTP: f(w, r)
/n/svn/go/src/pkg/net/http/server.go:908 (0x43feee)
(*ServeMux).ServeHTTP: h.ServeHTTP(w, r)
/n/svn/go/src/pkg/net/http/server.go:654 (0x43ef17)
(*conn).serve: handler.ServeHTTP(w, w.req)
/n/svn/go/src/pkg/runtime/proc.c:258 (0x40f19b)
goexit: runtime·goexit(void)
2012/07/11 02:19:32 http: panic serving 80.99.68.142:2637: runtime
error: slice bounds out of range
/n/svn/go/src/pkg/net/http/server.go:578 (0x44aa13)
_func_002: buf.Write(debug.Stack())
/n/svn/go/src/pkg/runtime/proc.c:1386 (0x410f6b)
panic: reflect·call(d->fn, d->args, d->siz);
/n/svn/go/src/pkg/runtime/runtime.c:128 (0x411a37)
panicstring: runtime·panic(err);
/n/svn/go/src/pkg/runtime/runtime.c:91 (0x411908)
panicslice: runtime·panicstring("slice bounds out of range");
/n/svn/go/src/pkg/runtime/zstring_amd64.c:252 (0x4171d0)
slicestring: runtime·panicslice();
/n/svn/epoint/pkg/key/key.go:200 (0x41d840)
Check: if id.UserId.Name[:len(prefix)] == prefix {
/n/svn/epoint/pkg/server/server.go:109 (0x41df81)
AddKeys: isIssuer, issuer, denom, err1 := key.Check(e)
/n/svn/epoint/cmd/epoint-server/epoint-server.go:71 (0x401755)
submitHandler: err := server.AddKeys([]byte(key))
/n/svn/go/src/pkg/net/http/server.go:688 (0x43f101)
HandlerFunc.ServeHTTP: f(w, r)
/n/svn/go/src/pkg/net/http/server.go:908 (0x43feee)
(*ServeMux).ServeHTTP: h.ServeHTTP(w, r)
/n/svn/go/src/pkg/net/http/server.go:654 (0x43ef17)
(*conn).serve: handler.ServeHTTP(w, w.req)
/n/svn/go/src/pkg/runtime/proc.c:258 (0x40f19b)
goexit: runtime·goexit(void)
2012/07/11 02:19:36 80.99.68.142:2638 GET /submit params:[]
2012/07/11 02:19:36 error: 404 expected key, draft or debit param, got:
GET /submit params:[]
2012/07/11 02:19:46 80.99.68.142:2638 POST /submit params:[draft debit key]
2012/07/11 02:19:46 http: panic serving 80.99.68.142:2638: runtime
error: slice bounds out of range
/n/svn/go/src/pkg/net/http/server.go:578 (0x44aa13)
_func_002: buf.Write(debug.Stack())
/n/svn/go/src/pkg/runtime/proc.c:1386 (0x410f6b)
panic: reflect·call(d->fn, d->args, d->siz);
/n/svn/go/src/pkg/runtime/runtime.c:128 (0x411a37)
panicstring: runtime·panic(err);
/n/svn/go/src/pkg/runtime/runtime.c:91 (0x411908)
panicslice: runtime·panicstring("slice bounds out of range");
/n/svn/go/src/pkg/runtime/zstring_amd64.c:252 (0x4171d0)
slicestring: runtime·panicslice();
/n/svn/epoint/pkg/key/key.go:200 (0x41d840)
Check: if id.UserId.Name[:len(prefix)] == prefix {
/n/svn/epoint/pkg/server/server.go:109 (0x41df81)
AddKeys: isIssuer, issuer, denom, err1 := key.Check(e)
/n/svn/epoint/cmd/epoint-server/epoint-server.go:71 (0x401755)
submitHandler: err := server.AddKeys([]byte(key))
/n/svn/go/src/pkg/net/http/server.go:688 (0x43f101)
HandlerFunc.ServeHTTP: f(w, r)
/n/svn/go/src/pkg/net/http/server.go:908 (0x43feee)
(*ServeMux).ServeHTTP: h.ServeHTTP(w, r)
/n/svn/go/src/pkg/net/http/server.go:654 (0x43ef17)
(*conn).serve: handler.ServeHTTP(w, w.req)
/n/svn/go/src/pkg/runtime/proc.c:258 (0x40f19b)
goexit: runtime·goexit(void)
2012/07/11 02:19:46 80.99.68.142:2639 POST /submit params:[draft debit key]
2012/07/11 02:19:46 http: panic serving 80.99.68.142:2639: runtime
error: slice bounds out of range
/n/svn/go/src/pkg/net/http/server.go:578 (0x44aa13)
_func_002: buf.Write(debug.Stack())
/n/svn/go/src/pkg/runtime/proc.c:1386 (0x410f6b)
panic: reflect·call(d->fn, d->args, d->siz);
/n/svn/go/src/pkg/runtime/runtime.c:128 (0x411a37)
panicstring: runtime·panic(err);
/n/svn/go/src/pkg/runtime/runtime.c:91 (0x411908)
panicslice: runtime·panicstring("slice bounds out of range");
/n/svn/go/src/pkg/runtime/zstring_amd64.c:252 (0x4171d0)
slicestring: runtime·panicslice();
/n/svn/epoint/pkg/key/key.go:200 (0x41d840)
Check: if id.UserId.Name[:len(prefix)] == prefix {
/n/svn/epoint/pkg/server/server.go:109 (0x41df81)
AddKeys: isIssuer, issuer, denom, err1 := key.Check(e)
/n/svn/epoint/cmd/epoint-server/epoint-server.go:71 (0x401755)
submitHandler: err := server.AddKeys([]byte(key))
/n/svn/go/src/pkg/net/http/server.go:688 (0x43f101)
HandlerFunc.ServeHTTP: f(w, r)
/n/svn/go/src/pkg/net/http/server.go:908 (0x43feee)
(*ServeMux).ServeHTTP: h.ServeHTTP(w, r)
/n/svn/go/src/pkg/net/http/server.go:654 (0x43ef17)
(*conn).serve: handler.ServeHTTP(w, w.req)
/n/svn/go/src/pkg/runtime/proc.c:258 (0x40f19b)
goexit: runtime·goexit(void)
2012/07/11 02:20:29 80.99.68.142:2642 POST /submit params:[key draft debit]
2012/07/11 02:20:30 http: panic serving 80.99.68.142:2642: runtime
error: slice bounds out of range
/n/svn/go/src/pkg/net/http/server.go:578 (0x44aa13)
_func_002: buf.Write(debug.Stack())
/n/svn/go/src/pkg/runtime/proc.c:1386 (0x410f6b)
panic: reflect·call(d->fn, d->args, d->siz);
/n/svn/go/src/pkg/runtime/runtime.c:128 (0x411a37)
panicstring: runtime·panic(err);
/n/svn/go/src/pkg/runtime/runtime.c:91 (0x411908)
panicslice: runtime·panicstring("slice bounds out of range");
/n/svn/go/src/pkg/runtime/zstring_amd64.c:252 (0x4171d0)
slicestring: runtime·panicslice();
/n/svn/epoint/pkg/key/key.go:200 (0x41d840)
Check: if id.UserId.Name[:len(prefix)] == prefix {
/n/svn/epoint/pkg/server/server.go:109 (0x41df81)
AddKeys: isIssuer, issuer, denom, err1 := key.Check(e)
/n/svn/epoint/cmd/epoint-server/epoint-server.go:71 (0x401755)
submitHandler: err := server.AddKeys([]byte(key))
/n/svn/go/src/pkg/net/http/server.go:688 (0x43f101)
HandlerFunc.ServeHTTP: f(w, r)
/n/svn/go/src/pkg/net/http/server.go:908 (0x43feee)
(*ServeMux).ServeHTTP: h.ServeHTTP(w, r)
/n/svn/go/src/pkg/net/http/server.go:654 (0x43ef17)
(*conn).serve: handler.ServeHTTP(w, w.req)
/n/svn/go/src/pkg/runtime/proc.c:258 (0x40f19b)
goexit: runtime·goexit(void)
2012/07/11 02:20:30 80.99.68.142:2644 POST /submit params:[debit key draft]
2012/07/11 02:20:30 http: panic serving 80.99.68.142:2644: runtime
error: slice bounds out of range
/n/svn/go/src/pkg/net/http/server.go:578 (0x44aa13)
_func_002: buf.Write(debug.Stack())
/n/svn/go/src/pkg/runtime/proc.c:1386 (0x410f6b)
panic: reflect·call(d->fn, d->args, d->siz);
/n/svn/go/src/pkg/runtime/runtime.c:128 (0x411a37)
panicstring: runtime·panic(err);
/n/svn/go/src/pkg/runtime/runtime.c:91 (0x411908)
panicslice: runtime·panicstring("slice bounds out of range");
/n/svn/go/src/pkg/runtime/zstring_amd64.c:252 (0x4171d0)
slicestring: runtime·panicslice();
/n/svn/epoint/pkg/key/key.go:200 (0x41d840)
Check: if id.UserId.Name[:len(prefix)] == prefix {
/n/svn/epoint/pkg/server/server.go:109 (0x41df81)
AddKeys: isIssuer, issuer, denom, err1 := key.Check(e)
/n/svn/epoint/cmd/epoint-server/epoint-server.go:71 (0x401755)
submitHandler: err := server.AddKeys([]byte(key))
/n/svn/go/src/pkg/net/http/server.go:688 (0x43f101)
HandlerFunc.ServeHTTP: f(w, r)
/n/svn/go/src/pkg/net/http/server.go:908 (0x43feee)
(*ServeMux).ServeHTTP: h.ServeHTTP(w, r)
/n/svn/go/src/pkg/net/http/server.go:654 (0x43ef17)
(*conn).serve: handler.ServeHTTP(w, w.req)
/n/svn/go/src/pkg/runtime/proc.c:258 (0x40f19b)
goexit: runtime·goexit(void)
2012/07/11 02:20:48 80.99.68.142:2650 POST /submit params:[key draft debit]
2012/07/11 02:20:48 error: 404 eval draft failed: not found:
key/EC964C1A7E1681D70577770DF3666E9DBF97A9C4
2012/07/11 09:33:21 80.99.68.142:1903 POST /submit params:[draft debit key]
2012/07/11 09:33:21 error: 404 add keys failed: Check: no valid userid
was found
2012/07/11 09:33:53 10.8.21.252:52896 POST /submit params:[draft debit key]
2012/07/11 09:33:53 error: 404 add keys failed: OpenPGP data invalid:
entity without any identities
2012/07/11 09:34:21 80.99.68.142:1903 POST /submit params:[draft debit key]
2012/07/11 09:34:21 error: 404 add keys failed: Check: no valid userid
was found
2012/07/11 09:35:57 10.8.21.252:60235 POST /submit params:[debit key draft]
2012/07/11 09:35:57 error: 404 add keys failed: Check: no valid userid
was found
2012/07/11 09:39:21 10.8.21.252:60252 POST /submit params:[key draft debit]
2012/07/11 09:39:21 error: 404 add keys failed: Check: no valid userid
was found
2012/07/11 09:40:19 10.8.21.252:37557 POST /submit params:[draft debit key]
2012/07/11 09:40:19 error: 404 add keys failed: Check: no valid userid
was found
2012/07/11 09:40:19 10.8.21.252:37558 POST /submit params:[draft debit key]
2012/07/11 09:40:19 error: 404 add keys failed: Check: no valid userid
was found
2012/07/11 09:40:47 10.8.21.252:37566 POST /submit params:[draft debit key]
2012/07/11 09:40:47 http: panic serving 10.8.21.252:37566: runtime
error: slice bounds out of range
/n/svn/go/src/pkg/net/http/server.go:578 (0x44aa13)
_func_002: buf.Write(debug.Stack())
/n/svn/go/src/pkg/runtime/proc.c:1386 (0x410f6b)
panic: reflect·call(d->fn, d->args, d->siz);
/n/svn/go/src/pkg/runtime/runtime.c:128 (0x411a37)
panicstring: runtime·panic(err);
/n/svn/go/src/pkg/runtime/runtime.c:91 (0x411908)
panicslice: runtime·panicstring("slice bounds out of range");
/n/svn/go/src/pkg/runtime/zstring_amd64.c:252 (0x4171d0)
slicestring: runtime·panicslice();
/n/svn/epoint/pkg/key/key.go:200 (0x41d840)
Check: if id.UserId.Name[:len(prefix)] == prefix {
/n/svn/epoint/pkg/server/server.go:109 (0x41df81)
AddKeys: isIssuer, issuer, denom, err1 := key.Check(e)
/n/svn/epoint/cmd/epoint-server/epoint-server.go:71 (0x401755)
submitHandler: err := server.AddKeys([]byte(key))
/n/svn/go/src/pkg/net/http/server.go:688 (0x43f101)
HandlerFunc.ServeHTTP: f(w, r)
/n/svn/go/src/pkg/net/http/server.go:908 (0x43feee)
(*ServeMux).ServeHTTP: h.ServeHTTP(w, r)
/n/svn/go/src/pkg/net/http/server.go:654 (0x43ef17)
(*conn).serve: handler.ServeHTTP(w, w.req)
/n/svn/go/src/pkg/runtime/proc.c:258 (0x40f19b)
goexit: runtime·goexit(void)
2012/07/11 09:40:54 10.8.21.252:37569 POST /submit params:[draft debit key]
2012/07/11 09:40:54 http: panic serving 10.8.21.252:37569: runtime
error: slice bounds out of range
/n/svn/go/src/pkg/net/http/server.go:578 (0x44aa13)
_func_002: buf.Write(debug.Stack())
/n/svn/go/src/pkg/runtime/proc.c:1386 (0x410f6b)
panic: reflect·call(d->fn, d->args, d->siz);
/n/svn/go/src/pkg/runtime/runtime.c:128 (0x411a37)
panicstring: runtime·panic(err);
/n/svn/go/src/pkg/runtime/runtime.c:91 (0x411908)
panicslice: runtime·panicstring("slice bounds out of range");
/n/svn/go/src/pkg/runtime/zstring_amd64.c:252 (0x4171d0)
slicestring: runtime·panicslice();
/n/svn/epoint/pkg/key/key.go:200 (0x41d840)
Check: if id.UserId.Name[:len(prefix)] == prefix {
/n/svn/epoint/pkg/server/server.go:109 (0x41df81)
AddKeys: isIssuer, issuer, denom, err1 := key.Check(e)
/n/svn/epoint/cmd/epoint-server/epoint-server.go:71 (0x401755)
submitHandler: err := server.AddKeys([]byte(key))
/n/svn/go/src/pkg/net/http/server.go:688 (0x43f101)
HandlerFunc.ServeHTTP: f(w, r)
/n/svn/go/src/pkg/net/http/server.go:908 (0x43feee)
(*ServeMux).ServeHTTP: h.ServeHTTP(w, r)
/n/svn/go/src/pkg/net/http/server.go:654 (0x43ef17)
(*conn).serve: handler.ServeHTTP(w, w.req)
/n/svn/go/src/pkg/runtime/proc.c:258 (0x40f19b)
goexit: runtime·goexit(void)
Received on Wed Jul 11 2012 - 10:54:43 CEST

This archive was generated by hypermail 2.3.0 : Sat Sep 14 2013 - 19:00:02 CEST