Calling Connection.QueryMeta() with a query string like "name = Bill" works fine, using a query string that looks like "name = Bill Smith" causes things to come crashing down. Quoting didn't seem to help (e.g. "name = 'Bill Smith'")
Here's the stack trace that I see, the first line is the log record for the POST to the search form, then the fun begins.
S.
POST /search/results HTTP/1.1
fatal error: unexpected signal during runtime execution
[signal 0xb code=0x1 addr=0x0 pc=0x7f037a3ef65c]
runtime stack:
runtime.throw(0xb32780, 0x2a)
/usr/local/go/src/runtime/panic.go:530 +0x90
runtime.sigpanic()
/usr/local/go/src/runtime/sigpanic_unix.go:12 +0x5a
runtime.asmcgocall(0xc8201dce70, 0x481fba)
/usr/local/go/src/runtime/asm_amd64.s:586 +0x70
goroutine 5 [syscall, locked to thread]:
runtime.cgocall(0x811a10, 0xc8201dced8, 0x0)
/usr/local/go/src/runtime/cgocall.go:123 +0x11b fp=0xc8201dcea0 sp=0xc8201dce70
github.com/jjacquay712/GoRods._Cfunc_free(0xbb54de)
??:0 +0x36 fp=0xc8201dced8 sp=0xc8201dcea0
github.com/jjacquay712/GoRods.(*Connection).QueryMeta(0xc82044c3f0, 0xc8201f7ae0, 0x12, 0x0, 0x0, 0x0, 0x7f037bf29b40, 0xc82044c450)
/home/alice/go/src/github.com/jjacquay712/GoRods/connection.go:368 +0x808 fp=0xc8201dd060 sp=0xc8201dced8
main.results(0x7f037bf28de8, 0xc8201395f0, 0xc820160b60)
/home/alice/go/src/github.com/bioteam/dai/route_search.go:73 +0x8cc fp=0xc8201dd428 sp=0xc8201dd060
net/http.HandlerFunc.ServeHTTP(0xb71528, 0x7f037bf28de8, 0xc8201395f0, 0xc820160b60)
/usr/local/go/src/net/http/server.go:1618 +0x3a fp=0xc8201dd448 sp=0xc8201dd428
goji.io/internal.ContextWrapper.ServeHTTPC(0x7f037bf27bc0, 0xb71528, 0x7f037bf28e60, 0xc82044c1e0, 0x7f037bf28de8, 0xc8201395f0, 0xc820160b60)
/home/alice/go/src/goji.io/internal/http.go:18 +0x4f fp=0xc8201dd480 sp=0xc8201dd448
goji.io/internal.(*ContextWrapper).ServeHTTPC(0xc82005d790, 0x7f037bf28e60, 0xc82044c1e0, 0x7f037bf28de8, 0xc8201395f0, 0xc820160b60)
<autogenerated>:2 +0xca fp=0xc8201dd4c0 sp=0xc8201dd480
goji%2eio.dispatch.ServeHTTPC(0x7f037bf28e60, 0xc82044c1e0, 0x7f037bf28de8, 0xc8201395f0, 0xc820160b60)
/home/alice/go/src/goji.io/dispatch.go:17 +0xfa fp=0xc8201dd518 sp=0xc8201dd4c0
goji%2eio.(*dispatch).ServeHTTPC(0x100b198, 0x7f037bf28e60, 0xc82044c1e0, 0x7f037bf28de8, 0xc8201395f0, 0xc820160b60)
<autogenerated>:2 +0xbf fp=0xc8201dd550 sp=0xc8201dd518
main.authHandler.func1(0x7f037bf28ee0, 0xc82044c090, 0x7f037bf28de8, 0xc8201395f0, 0xc820160b60)
/home/alice/go/src/github.com/bioteam/dai/middleware.go:37 +0x3c4 fp=0xc8201dd858 sp=0xc8201dd550
goji%2eio.HandlerFunc.ServeHTTPC(0xc8200cb320, 0x7f037bf28ee0, 0xc82044c090, 0x7f037bf28de8, 0xc8201395f0, 0xc820160b60)
/home/alice/go/src/goji.io/goji.go:93 +0x4e fp=0xc8201dd888 sp=0xc8201dd858
main.alogger.func1(0x7f037bf28ee0, 0xc82044c090, 0x7f037bf28de8, 0xc8201395f0, 0xc820160b60)
/home/alice/go/src/github.com/bioteam/dai/middleware.go:53 +0x24a fp=0xc8201dd938 sp=0xc8201dd888
goji%2eio.HandlerFunc.ServeHTTPC(0xc8200cb340, 0x7f037bf28ee0, 0xc82044c090, 0x7f037bf28de8, 0xc8201395f0, 0xc820160b60)
/home/alice/go/src/goji.io/goji.go:93 +0x4e fp=0xc8201dd968 sp=0xc8201dd938
main.Apply404.func1(0x7f037bf28ee0, 0xc82044c090, 0x7f037bf28de8, 0xc8201395f0, 0xc820160b60)
/home/alice/go/src/github.com/bioteam/dai/middleware.go:66 +0x202 fp=0xc8201dda08 sp=0xc8201dd968
goji%2eio.HandlerFunc.ServeHTTPC(0xc8200cb360, 0x7f037bf28ee0, 0xc82044c090, 0x7f037bf28de8, 0xc8201395f0, 0xc820160b60)
/home/alice/go/src/goji.io/goji.go:93 +0x4e fp=0xc8201dda38 sp=0xc8201dda08
goji%2eio.(*Mux).ServeHTTPC(0xc820080080, 0x7f037bf28ee0, 0xc82044c090, 0x7f037bf28de8, 0xc8201395f0, 0xc820160b60)
/home/alice/go/src/goji.io/mux.go:87 +0x276 fp=0xc8201ddb08 sp=0xc8201dda38
goji%2eio.(*Mux).ServeHTTP(0xc820080080, 0x7f037bf28de8, 0xc8201395f0, 0xc820160b60)
/home/alice/go/src/goji.io/mux.go:76 +0x82 fp=0xc8201ddb60 sp=0xc8201ddb08
net/http.serverHandler.ServeHTTP(0xc820080300, 0x7f037bf28de8, 0xc8201395f0, 0xc820160b60)
/usr/local/go/src/net/http/server.go:2081 +0x19e fp=0xc8201ddbc0 sp=0xc8201ddb60
net/http.(*conn).serve(0xc8201c4000)
/usr/local/go/src/net/http/server.go:1472 +0xf2e fp=0xc8201ddf88 sp=0xc8201ddbc0
runtime.goexit()
/usr/local/go/src/runtime/asm_amd64.s:1998 +0x1 fp=0xc8201ddf90 sp=0xc8201ddf88
created by net/http.(*Server).Serve
/usr/local/go/src/net/http/server.go:2137 +0x44e
goroutine 1 [IO wait]:
net.runtime_pollWait(0x7f037bf28c10, 0x72, 0x0)
/usr/local/go/src/runtime/netpoll.go:160 +0x60
net.(*pollDesc).Wait(0xc820114c30, 0x72, 0x0, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:73 +0x3a
net.(*pollDesc).WaitRead(0xc820114c30, 0x0, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:78 +0x36
net.(*netFD).accept(0xc820114bd0, 0x0, 0x7f037bf28d08, 0xc82000cde0)
/usr/local/go/src/net/fd_unix.go:426 +0x27c
net.(*TCPListener).AcceptTCP(0xc82007c058, 0x4d1350, 0x0, 0x0)
/usr/local/go/src/net/tcpsock_posix.go:254 +0x4d
net/http.tcpKeepAliveListener.Accept(0xc82007c058, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/net/http/server.go:2427 +0x41
net/http.(*Server).Serve(0xc820080300, 0x7f037bf28cd0, 0xc82007c058, 0x0, 0x0)
/usr/local/go/src/net/http/server.go:2117 +0x129
net/http.(*Server).ListenAndServe(0xc820080300, 0x0, 0x0)
/usr/local/go/src/net/http/server.go:2098 +0x136
main.main()
/home/alice/go/src/github.com/bioteam/dai/main.go:83 +0xd72
goroutine 17 [syscall, locked to thread]:
runtime.goexit()
/usr/local/go/src/runtime/asm_amd64.s:1998 +0x1
goroutine 19 [chan receive]:
database/sql.(*DB).connectionOpener(0xc8200f9970)
/usr/local/go/src/database/sql/sql.go:727 +0x45
created by database/sql.Open
/usr/local/go/src/database/sql/sql.go:493 +0x33f
goroutine 20 [IO wait]:
net.runtime_pollWait(0x7f037bf28b50, 0x72, 0xc82015c000)
/usr/local/go/src/runtime/netpoll.go:160 +0x60
net.(*pollDesc).Wait(0xc820114ca0, 0x72, 0x0, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:73 +0x3a
net.(*pollDesc).WaitRead(0xc820114ca0, 0x0, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:78 +0x36
net.(*netFD).Read(0xc820114c40, 0xc82015c000, 0x1000, 0x1000, 0x0, 0x7f037bf1f028, 0xc82005c090)
/usr/local/go/src/net/fd_unix.go:250 +0x23a
net.(*conn).Read(0xc82007c060, 0xc82015c000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
/usr/local/go/src/net/net.go:172 +0xe4
net/http.(*connReader).Read(0xc82000c140, 0xc82015c000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
/usr/local/go/src/net/http/server.go:526 +0x196
bufio.(*Reader).fill(0xc82015a000)
/usr/local/go/src/bufio/bufio.go:97 +0x1e9
bufio.(*Reader).ReadSlice(0xc82015a000, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/bufio/bufio.go:328 +0x21a
bufio.(*Reader).ReadLine(0xc82015a000, 0x0, 0x0, 0x0, 0xa5fd00, 0x0, 0x0)
/usr/local/go/src/bufio/bufio.go:357 +0x53
net/textproto.(*Reader).readLineSlice(0xc8200136e0, 0x0, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/net/textproto/reader.go:55 +0x81
net/textproto.(*Reader).ReadLine(0xc8200136e0, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/net/textproto/reader.go:36 +0x40
net/http.readRequest(0xc82015a000, 0xb71700, 0xc820162700, 0x0, 0x0)
/usr/local/go/src/net/http/request.go:721 +0xb6
net/http.(*conn).readRequest(0xc820080380, 0x0, 0x0, 0x0)
/usr/local/go/src/net/http/server.go:705 +0x359
net/http.(*conn).serve(0xc820080380)
/usr/local/go/src/net/http/server.go:1425 +0x947
created by net/http.(*Server).Serve
/usr/local/go/src/net/http/server.go:2137 +0x44e
goroutine 21 [IO wait]:
net.runtime_pollWait(0x7f037bf28a90, 0x72, 0xc820164000)
/usr/local/go/src/runtime/netpoll.go:160 +0x60
net.(*pollDesc).Wait(0xc820114d10, 0x72, 0x0, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:73 +0x3a
net.(*pollDesc).WaitRead(0xc820114d10, 0x0, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:78 +0x36
net.(*netFD).Read(0xc820114cb0, 0xc820164000, 0x1000, 0x1000, 0x0, 0x7f037bf1f028, 0xc82005c090)
/usr/local/go/src/net/fd_unix.go:250 +0x23a
net.(*conn).Read(0xc82007c068, 0xc820164000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
/usr/local/go/src/net/net.go:172 +0xe4
net/http.(*connReader).Read(0xc8200cb4e0, 0xc820164000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
/usr/local/go/src/net/http/server.go:526 +0x196
bufio.(*Reader).fill(0xc8200584e0)
/usr/local/go/src/bufio/bufio.go:97 +0x1e9
bufio.(*Reader).ReadSlice(0xc8200584e0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/bufio/bufio.go:328 +0x21a
bufio.(*Reader).ReadLine(0xc8200584e0, 0x0, 0x0, 0x0, 0xa5fd00, 0x0, 0x0)
/usr/local/go/src/bufio/bufio.go:357 +0x53
net/textproto.(*Reader).readLineSlice(0xc820156c30, 0x0, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/net/textproto/reader.go:55 +0x81
net/textproto.(*Reader).ReadLine(0xc820156c30, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/net/textproto/reader.go:36 +0x40
net/http.readRequest(0xc8200584e0, 0xb71700, 0xc8201609a0, 0x0, 0x0)
/usr/local/go/src/net/http/request.go:721 +0xb6
net/http.(*conn).readRequest(0xc820080400, 0x0, 0x0, 0x0)
/usr/local/go/src/net/http/server.go:705 +0x359
net/http.(*conn).serve(0xc820080400)
/usr/local/go/src/net/http/server.go:1425 +0x947
created by net/http.(*Server).Serve
/usr/local/go/src/net/http/server.go:2137 +0x44e
goroutine 22 [IO wait]:
net.runtime_pollWait(0x7f037bf289d0, 0x72, 0xc82015e000)
/usr/local/go/src/runtime/netpoll.go:160 +0x60
net.(*pollDesc).Wait(0xc820114d80, 0x72, 0x0, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:73 +0x3a
net.(*pollDesc).WaitRead(0xc820114d80, 0x0, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:78 +0x36
net.(*netFD).Read(0xc820114d20, 0xc82015e000, 0x1000, 0x1000, 0x0, 0x7f037bf1f028, 0xc82005c090)
/usr/local/go/src/net/fd_unix.go:250 +0x23a
net.(*conn).Read(0xc82007c070, 0xc82015e000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
/usr/local/go/src/net/net.go:172 +0xe4
net/http.(*connReader).Read(0xc8200cb580, 0xc82015e000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
/usr/local/go/src/net/http/server.go:526 +0x196
bufio.(*Reader).fill(0xc820058480)
/usr/local/go/src/bufio/bufio.go:97 +0x1e9
bufio.(*Reader).ReadSlice(0xc820058480, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/bufio/bufio.go:328 +0x21a
bufio.(*Reader).ReadLine(0xc820058480, 0x0, 0x0, 0x0, 0xa5fd00, 0x0, 0x0)
/usr/local/go/src/bufio/bufio.go:357 +0x53
net/textproto.(*Reader).readLineSlice(0xc820156c60, 0x0, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/net/textproto/reader.go:55 +0x81
net/textproto.(*Reader).ReadLine(0xc820156c60, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/net/textproto/reader.go:36 +0x40
net/http.readRequest(0xc820058480, 0xb71700, 0xc8201622a0, 0x0, 0x0)
/usr/local/go/src/net/http/request.go:721 +0xb6
net/http.(*conn).readRequest(0xc820080480, 0x0, 0x0, 0x0)
/usr/local/go/src/net/http/server.go:705 +0x359
net/http.(*conn).serve(0xc820080480)
/usr/local/go/src/net/http/server.go:1425 +0x947
created by net/http.(*Server).Serve
/usr/local/go/src/net/http/server.go:2137 +0x44e
goroutine 26 [IO wait]:
net.runtime_pollWait(0x7f037bf28850, 0x72, 0xc8201c2000)
/usr/local/go/src/runtime/netpoll.go:160 +0x60
net.(*pollDesc).Wait(0xc8201c0680, 0x72, 0x0, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:73 +0x3a
net.(*pollDesc).WaitRead(0xc8201c0680, 0x0, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:78 +0x36
net.(*netFD).Read(0xc8201c0620, 0xc8201c2000, 0x1000, 0x1000, 0x0, 0x7f037bf1f028, 0xc82005c090)
/usr/local/go/src/net/fd_unix.go:250 +0x23a
net.(*conn).Read(0xc82007c128, 0xc8201c2000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
/usr/local/go/src/net/net.go:172 +0xe4
net/http.(*connReader).Read(0xc82016b7c0, 0xc8201c2000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
/usr/local/go/src/net/http/server.go:526 +0x196
bufio.(*Reader).fill(0xc820058b40)
/usr/local/go/src/bufio/bufio.go:97 +0x1e9
bufio.(*Reader).ReadSlice(0xc820058b40, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/bufio/bufio.go:328 +0x21a
bufio.(*Reader).ReadLine(0xc820058b40, 0x0, 0x0, 0x0, 0xa5fd00, 0x0, 0x0)
/usr/local/go/src/bufio/bufio.go:357 +0x53
net/textproto.(*Reader).readLineSlice(0xc820012060, 0x0, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/net/textproto/reader.go:55 +0x81
net/textproto.(*Reader).ReadLine(0xc820012060, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/net/textproto/reader.go:36 +0x40
net/http.readRequest(0xc820058b40, 0xb71700, 0xc820162460, 0x0, 0x0)
/usr/local/go/src/net/http/request.go:721 +0xb6
net/http.(*conn).readRequest(0xc820080b00, 0x0, 0x0, 0x0)
/usr/local/go/src/net/http/server.go:705 +0x359
net/http.(*conn).serve(0xc820080b00)
/usr/local/go/src/net/http/server.go:1425 +0x947
created by net/http.(*Server).Serve
/usr/local/go/src/net/http/server.go:2137 +0x44e
goroutine 6 [IO wait]:
net.runtime_pollWait(0x7f037bf28550, 0x72, 0xc8201e7000)
/usr/local/go/src/runtime/netpoll.go:160 +0x60
net.(*pollDesc).Wait(0xc82004e290, 0x72, 0x0, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:73 +0x3a
net.(*pollDesc).WaitRead(0xc82004e290, 0x0, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:78 +0x36
net.(*netFD).Read(0xc82004e230, 0xc8201e7000, 0x1000, 0x1000, 0x0, 0x7f037bf1f028, 0xc82005c090)
/usr/local/go/src/net/fd_unix.go:250 +0x23a
net.(*conn).Read(0xc820020040, 0xc8201e7000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
/usr/local/go/src/net/net.go:172 +0xe4
net/http.(*connReader).Read(0xc82000ce20, 0xc8201e7000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
/usr/local/go/src/net/http/server.go:526 +0x196
bufio.(*Reader).fill(0xc82015a1e0)
/usr/local/go/src/bufio/bufio.go:97 +0x1e9
bufio.(*Reader).ReadSlice(0xc82015a1e0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/bufio/bufio.go:328 +0x21a
bufio.(*Reader).ReadLine(0xc82015a1e0, 0x0, 0x0, 0x0, 0xa5fd00, 0x0, 0x0)
/usr/local/go/src/bufio/bufio.go:357 +0x53
net/textproto.(*Reader).readLineSlice(0xc8201bed50, 0x0, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/net/textproto/reader.go:55 +0x81
net/textproto.(*Reader).ReadLine(0xc8201bed50, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/net/textproto/reader.go:36 +0x40
net/http.readRequest(0xc82015a1e0, 0xb71700, 0xc820162380, 0x0, 0x0)
/usr/local/go/src/net/http/request.go:721 +0xb6
net/http.(*conn).readRequest(0xc8201c4380, 0x0, 0x0, 0x0)
/usr/local/go/src/net/http/server.go:705 +0x359
net/http.(*conn).serve(0xc8201c4380)
/usr/local/go/src/net/http/server.go:1425 +0x947
created by net/http.(*Server).Serve
/usr/local/go/src/net/http/server.go:2137 +0x44e