go-driver icon indicating copy to clipboard operation
go-driver copied to clipboard

Error with vst://

Open Fruchtgummi opened this issue 5 years ago • 2 comments

url to DB ist with vst-protocol 1.1 "vst://mydb:8529

goroutine 2247 [IO wait]:
internal/poll.runtime_pollWait(0x7f50275d0e08, 0x72, 0xffffffffffffffff)
        /usr/local/go/src/runtime/netpoll.go:182 +0x56
internal/poll.(*pollDesc).wait(0xc0000fe918, 0x72, 0x1000, 0x1000, 0xffffffffffffffff)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x9b
internal/poll.(*pollDesc).waitRead(...)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc0000fe900, 0xc01d74f000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
        /usr/local/go/src/internal/poll/fd_unix.go:169 +0x19b
net.(*netFD).Read(0xc0000fe900, 0xc01d74f000, 0x1000, 0x1000, 0xc019238600, 0xc01992f938, 0x6e7891)
        /usr/local/go/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc0001260b0, 0xc01d74f000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
        /usr/local/go/src/net/net.go:177 +0x69
net/http.(*connReader).Read(0xc000266b70, 0xc01d74f000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
        /usr/local/go/src/net/http/server.go:787 +0x107
bufio.(*Reader).fill(0xc01d7502a0)
        /usr/local/go/src/bufio/bufio.go:100 +0x10f
bufio.(*Reader).ReadSlice(0xc01d7502a0, 0x2030060000000a, 0x7f5026a4ffff, 0xc01992fb00, 0x40d239, 0xc00012f400, 0x100)
        /usr/local/go/src/bufio/bufio.go:356 +0x3d
bufio.(*Reader).ReadLine(0xc01d7502a0, 0xc01992fb08, 0xc000304000, 0x7f5029b0c460, 0x0, 0xc000023d70, 0x0)
        /usr/local/go/src/bufio/bufio.go:385 +0x34
net/textproto.(*Reader).readLineSlice(0xc000023d70, 0xc00012f400, 0xc0000fe900, 0x0, 0x0, 0x42d091)
        /usr/local/go/src/net/textproto/reader.go:55 +0x6f
net/textproto.(*Reader).ReadLine(...)
        /usr/local/go/src/net/textproto/reader.go:36
net/http.readRequest(0xc01d7502a0, 0x0, 0xc00012f400, 0x0, 0x0)
        /usr/local/go/src/net/http/request.go:968 +0x8d
net/http.(*conn).readRequest(0xc00052c460, 0x15508c0, 0xc019238540, 0x0, 0x0, 0x0)
        /usr/local/go/src/net/http/server.go:967 +0x163
net/http.(*conn).serve(0xc00052c460, 0x15508c0, 0xc019238540)
        /usr/local/go/src/net/http/server.go:1819 +0x6ad
created by net/http.(*Server).Serve
        /usr/local/go/src/net/http/server.go:2884 +0x2f4

Fruchtgummi avatar Mar 26 '20 14:03 Fruchtgummi

If I use VST give me "Out of Memory" back

goroutine 1 [chan receive, 5 minutes]:
main.main()
        /go/src/rdapp/main.go:111 +0x939

goroutine 19 [syscall, 5 minutes]:
os/signal.signal_recv(0x0)
        /usr/local/go/src/runtime/sigqueue.go:139 +0x9c
os/signal.loop()
        /usr/local/go/src/os/signal/signal_unix.go:23 +0x22
created by os/signal.init.0
        /usr/local/go/src/os/signal/signal_unix.go:29 +0x41

goroutine 52 [sleep]:
runtime.goparkunlock(...)
        /usr/local/go/src/runtime/proc.go:307
time.Sleep(0x165a0bc00)
        /usr/local/go/src/runtime/time.go:105 +0x159
github.com/arangodb/go-driver/vst/protocol.(*Transport).cleanup(0xc00011a960)
        /go/src/github.com/arangodb/go-driver/vst/protocol/transport.go:230 +0x4c
created by github.com/arangodb/go-driver/vst/protocol.(*Transport).createConnection
        /go/src/github.com/arangodb/go-driver/vst/protocol/transport.go:221 +0x122

goroutine 51 [IO wait]:
internal/poll.runtime_pollWait(0x7fb677b16178, 0x72, 0xffffffffffffffff)
        /usr/local/go/src/runtime/netpoll.go:182 +0x56
internal/poll.(*pollDesc).wait(0xc0002ba198, 0x72, 0xcc00, 0xccb9, 0xffffffffffffffff)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x9b
internal/poll.(*pollDesc).waitRead(...)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc0002ba180, 0xc000510000, 0xccb9, 0xccb9, 0x0, 0x0, 0x0)
        /usr/local/go/src/internal/poll/fd_unix.go:169 +0x19b
net.(*netFD).Read(0xc0002ba180, 0xc000510000, 0xccb9, 0xccb9, 0x20301f, 0x0, 0xc55)
        /usr/local/go/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc0002be010, 0xc000510000, 0xccb9, 0xccb9, 0x0, 0x0, 0x0)
        /usr/local/go/src/net/net.go:177 +0x69
crypto/tls.(*atLeastReader).Read(0xc07f17b400, 0xc000510000, 0xccb9, 0xccb9, 0xb61e, 0x1596dc0, 0xc00004fb70)
        /usr/local/go/src/crypto/tls/conn.go:761 +0x60
bytes.(*Buffer).ReadFrom(0xc0002c6258, 0x1596c00, 0xc07f17b400, 0x40b345, 0xdc0cc0, 0xe71240)
        /usr/local/go/src/bytes/buffer.go:207 +0xbd
crypto/tls.(*Conn).readFromUntil(0xc0002c6000, 0x1597720, 0xc0002be010, 0x5, 0xc0002be010, 0x20c)
        /usr/local/go/src/crypto/tls/conn.go:783 +0xf8
crypto/tls.(*Conn).readRecordOrCCS(0xc0002c6000, 0xf27400, 0xc0002c6138, 0x0)
        /usr/local/go/src/crypto/tls/conn.go:590 +0x125
crypto/tls.(*Conn).readRecord(...)
        /usr/local/go/src/crypto/tls/conn.go:558
crypto/tls.(*Conn).Read(0xc0002c6000, 0xc07fa64a00, 0x18, 0x18, 0x0, 0x0, 0x0)
        /usr/local/go/src/crypto/tls/conn.go:1236 +0x137
github.com/arangodb/go-driver/vst/protocol.readBytes(0xc07fa64a00, 0x18, 0x18, 0x7fb67792d008, 0xc0002c6000, 0xdc0cc0, 0xe8e840)
        /go/src/github.com/arangodb/go-driver/vst/protocol/chunk.go:95 +0x97
github.com/arangodb/go-driver/vst/protocol.readChunkVST1_1(0x7fb67792d008, 0xc0002c6000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x17e4, 0x0)
        /go/src/github.com/arangodb/go-driver/vst/protocol/chunk_1_1.go:35 +0x99
github.com/arangodb/go-driver/vst/protocol.(*Connection).readChunkLoop(0xc0002ba300)
        /go/src/github.com/arangodb/go-driver/vst/protocol/connection.go:225 +0xbd
created by github.com/arangodb/go-driver/vst/protocol.dial
        /go/src/github.com/arangodb/go-driver/vst/protocol/connection.go:104 +0x20b

Fruchtgummi avatar Apr 14 '20 09:04 Fruchtgummi

Your initial IOWait goroutine is just blocked in an IO wait state, which is normal. The second trace also appears to be normal operation. I'm not sure what's crashing, your process/server or ArangoDB, but if it's your client process there could be lots of reasons for OOMing. You'll probably need to post a proper detailed bug report to get much traction.

irridia avatar Oct 01 '20 05:10 irridia

@Fruchtgummi you should use http protocol with vst.ConnectionConfig:

	// Create a VST connection to the database
	conn, err := vst.NewConnection(vst.ConnectionConfig{
		Endpoints: []string{"http://localhost:8529"},
	})
	if err != nil {
		// Handle error
	}

https://github.com/arangodb/go-driver/blob/fcf44bd0a110bded9f44bb570d7f9fad781ca2e5/vst/doc.go#L31-L39

jwierzbo avatar Oct 17 '22 19:10 jwierzbo