fastcgi-serve icon indicating copy to clipboard operation
fastcgi-serve copied to clipboard

When the fcgi backend is not present, the server segfaults

Open lovasoa opened this issue 6 years ago • 1 comments

When there is nothing listening on the fastCGI server port, instead of getting a readable error message, one gets :

$ ~/go/bin/fastcgi-serve
Listening on http://localhost:8080
Document root is /Users/olojkine/Developpement/iipsrv
Press Ctrl-C to quit.
err: dial tcp 127.0.0.1:9000: connect: connection refused2019/10/29 14:05:31 http: panic serving 127.0.0.1:54013: runtime error: invalid memory address or nil pointer dereference
goroutine 5 [running]:
net/http.(*conn).serve.func1(0xc000126000)
	/usr/local/go/src/net/http/server.go:1767 +0x139
panic(0x12c40a0, 0x1562980)
	/usr/local/go/src/runtime/panic.go:679 +0x1b2
github.com/beberlei/hhvm-serve/fcgiclient.(*FCGIClient).Request(0xc0001280a0, 0xc0001377d0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
	/Users/olojkine/go/src/github.com/beberlei/hhvm-serve/fcgiclient/fastcgi.go:294 +0x6e
main.handler(0x138ad80, 0xc000158000, 0xc00013a000)
	/Users/olojkine/go/src/github.com/beberlei/fastcgi-serve/fastcgi-serve.go:91 +0xb0f
net/http.HandlerFunc.ServeHTTP(0x13372e8, 0x138ad80, 0xc000158000, 0xc00013a000)
	/usr/local/go/src/net/http/server.go:2007 +0x44
net/http.(*ServeMux).ServeHTTP(0x156eac0, 0x138ad80, 0xc000158000, 0xc00013a000)
	/usr/local/go/src/net/http/server.go:2387 +0x1bd
net/http.serverHandler.ServeHTTP(0xc000118000, 0x138ad80, 0xc000158000, 0xc00013a000)
	/usr/local/go/src/net/http/server.go:2802 +0xa4
net/http.(*conn).serve(0xc000126000, 0x138b3c0, 0xc0000e04c0)
	/usr/local/go/src/net/http/server.go:1890 +0x875
created by net/http.(*Server).Serve
	/usr/local/go/src/net/http/server.go:2927 +0x38e
err: dial tcp 127.0.0.1:9000: connect: connection refused2019/10/29 14:05:31 http: panic serving 127.0.0.1:54015: runtime error: invalid memory address or nil pointer dereference
goroutine 21 [running]:
net/http.(*conn).serve.func1(0xc0000d0b40)
	/usr/local/go/src/net/http/server.go:1767 +0x139
panic(0x12c40a0, 0x1562980)
	/usr/local/go/src/runtime/panic.go:679 +0x1b2
github.com/beberlei/hhvm-serve/fcgiclient.(*FCGIClient).Request(0xc0000d8320, 0xc0001397d0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
	/Users/olojkine/go/src/github.com/beberlei/hhvm-serve/fcgiclient/fastcgi.go:294 +0x6e
main.handler(0x138ad80, 0xc0001a6000, 0xc000190000)
	/Users/olojkine/go/src/github.com/beberlei/fastcgi-serve/fastcgi-serve.go:91 +0xb0f
net/http.HandlerFunc.ServeHTTP(0x13372e8, 0x138ad80, 0xc0001a6000, 0xc000190000)
	/usr/local/go/src/net/http/server.go:2007 +0x44
net/http.(*ServeMux).ServeHTTP(0x156eac0, 0x138ad80, 0xc0001a6000, 0xc000190000)
	/usr/local/go/src/net/http/server.go:2387 +0x1bd
net/http.serverHandler.ServeHTTP(0xc000118000, 0x138ad80, 0xc0001a6000, 0xc000190000)
	/usr/local/go/src/net/http/server.go:2802 +0xa4
net/http.(*conn).serve(0xc0000d0b40, 0x138b3c0, 0xc0000800c0)
	/usr/local/go/src/net/http/server.go:1890 +0x875
created by net/http.(*Server).Serve
	/usr/local/go/src/net/http/server.go:2927 +0x38e
err: dial tcp 127.0.0.1:9000: connect: connection refused2019/10/29 14:05:31 http: panic serving 127.0.0.1:54017: runtime error: invalid memory address or nil pointer dereference
goroutine 51 [running]:
net/http.(*conn).serve.func1(0xc0001960a0)
	/usr/local/go/src/net/http/server.go:1767 +0x139
panic(0x12c40a0, 0x1562980)
	/usr/local/go/src/runtime/panic.go:679 +0x1b2
github.com/beberlei/hhvm-serve/fcgiclient.(*FCGIClient).Request(0xc0001bc0a0, 0xc0001397d0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
	/Users/olojkine/go/src/github.com/beberlei/hhvm-serve/fcgiclient/fastcgi.go:294 +0x6e
main.handler(0x138ad80, 0xc0001c8000, 0xc00013a100)
	/Users/olojkine/go/src/github.com/beberlei/fastcgi-serve/fastcgi-serve.go:91 +0xb0f
net/http.HandlerFunc.ServeHTTP(0x13372e8, 0x138ad80, 0xc0001c8000, 0xc00013a100)
	/usr/local/go/src/net/http/server.go:2007 +0x44
net/http.(*ServeMux).ServeHTTP(0x156eac0, 0x138ad80, 0xc0001c8000, 0xc00013a100)
	/usr/local/go/src/net/http/server.go:2387 +0x1bd
net/http.serverHandler.ServeHTTP(0xc000118000, 0x138ad80, 0xc0001c8000, 0xc00013a100)
	/usr/local/go/src/net/http/server.go:2802 +0xa4
net/http.(*conn).serve(0xc0001960a0, 0x138b3c0, 0xc0000e0580)
	/usr/local/go/src/net/http/server.go:1890 +0x875
created by net/http.(*Server).Serve
	/usr/local/go/src/net/http/server.go:2927 +0x38e
err: dial tcp 127.0.0.1:9000: connect: connection refused2019/10/29 14:05:31 http: panic serving 127.0.0.1:54019: runtime error: invalid memory address or nil pointer dereference
goroutine 52 [running]:
net/http.(*conn).serve.func1(0xc000196140)
	/usr/local/go/src/net/http/server.go:1767 +0x139
panic(0x12c40a0, 0x1562980)
	/usr/local/go/src/runtime/panic.go:679 +0x1b2
github.com/beberlei/hhvm-serve/fcgiclient.(*FCGIClient).Request(0xc0000d83c0, 0xc0001337d0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
	/Users/olojkine/go/src/github.com/beberlei/hhvm-serve/fcgiclient/fastcgi.go:294 +0x6e
main.handler(0x138ad80, 0xc0001180e0, 0xc00013a200)
	/Users/olojkine/go/src/github.com/beberlei/fastcgi-serve/fastcgi-serve.go:91 +0xb0f
net/http.HandlerFunc.ServeHTTP(0x13372e8, 0x138ad80, 0xc0001180e0, 0xc00013a200)
	/usr/local/go/src/net/http/server.go:2007 +0x44
net/http.(*ServeMux).ServeHTTP(0x156eac0, 0x138ad80, 0xc0001180e0, 0xc00013a200)
	/usr/local/go/src/net/http/server.go:2387 +0x1bd
net/http.serverHandler.ServeHTTP(0xc000118000, 0x138ad80, 0xc0001180e0, 0xc00013a200)
	/usr/local/go/src/net/http/server.go:2802 +0xa4
net/http.(*conn).serve(0xc000196140, 0x138b3c0, 0xc0000e0600)
	/usr/local/go/src/net/http/server.go:1890 +0x875
created by net/http.(*Server).Serve
	/usr/local/go/src/net/http/server.go:2927 +0x38e
err: dial tcp 127.0.0.1:9000: connect: connection refused2019/10/29 14:05:31 http: panic serving 127.0.0.1:54021: runtime error: invalid memory address or nil pointer dereference
goroutine 23 [running]:
net/http.(*conn).serve.func1(0xc0000d0c80)
	/usr/local/go/src/net/http/server.go:1767 +0x139
panic(0x12c40a0, 0x1562980)
	/usr/local/go/src/runtime/panic.go:679 +0x1b2
github.com/beberlei/hhvm-serve/fcgiclient.(*FCGIClient).Request(0xc0001bc190, 0xc0001337d0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
	/Users/olojkine/go/src/github.com/beberlei/hhvm-serve/fcgiclient/fastcgi.go:294 +0x6e
main.handler(0x138ad80, 0xc0001c80e0, 0xc0001fe000)
	/Users/olojkine/go/src/github.com/beberlei/fastcgi-serve/fastcgi-serve.go:91 +0xb0f
net/http.HandlerFunc.ServeHTTP(0x13372e8, 0x138ad80, 0xc0001c80e0, 0xc0001fe000)
	/usr/local/go/src/net/http/server.go:2007 +0x44
net/http.(*ServeMux).ServeHTTP(0x156eac0, 0x138ad80, 0xc0001c80e0, 0xc0001fe000)
	/usr/local/go/src/net/http/server.go:2387 +0x1bd
net/http.serverHandler.ServeHTTP(0xc000118000, 0x138ad80, 0xc0001c80e0, 0xc0001fe000)
	/usr/local/go/src/net/http/server.go:2802 +0xa4
net/http.(*conn).serve(0xc0000d0c80, 0x138b3c0, 0xc0001a0080)
	/usr/local/go/src/net/http/server.go:1890 +0x875
created by net/http.(*Server).Serve
	/usr/local/go/src/net/http/server.go:2927 +0x38e
err: dial tcp 127.0.0.1:9000: connect: connection refused2019/10/29 14:05:31 http: panic serving 127.0.0.1:54023: runtime error: invalid memory address or nil pointer dereference
goroutine 8 [running]:
net/http.(*conn).serve.func1(0xc0001261e0)
	/usr/local/go/src/net/http/server.go:1767 +0x139
panic(0x12c40a0, 0x1562980)
	/usr/local/go/src/runtime/panic.go:679 +0x1b2
github.com/beberlei/hhvm-serve/fcgiclient.(*FCGIClient).Request(0xc00021c050, 0xc0002177d0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
	/Users/olojkine/go/src/github.com/beberlei/hhvm-serve/fcgiclient/fastcgi.go:294 +0x6e
main.handler(0x138ad80, 0xc0001580e0, 0xc0001fe100)
	/Users/olojkine/go/src/github.com/beberlei/fastcgi-serve/fastcgi-serve.go:91 +0xb0f
net/http.HandlerFunc.ServeHTTP(0x13372e8, 0x138ad80, 0xc0001580e0, 0xc0001fe100)
	/usr/local/go/src/net/http/server.go:2007 +0x44
net/http.(*ServeMux).ServeHTTP(0x156eac0, 0x138ad80, 0xc0001580e0, 0xc0001fe100)
	/usr/local/go/src/net/http/server.go:2387 +0x1bd
net/http.serverHandler.ServeHTTP(0xc000118000, 0x138ad80, 0xc0001580e0, 0xc0001fe100)
	/usr/local/go/src/net/http/server.go:2802 +0xa4
net/http.(*conn).serve(0xc0001261e0, 0x138b3c0, 0xc0001a0100)
	/usr/local/go/src/net/http/server.go:1890 +0x875
created by net/http.(*Server).Serve
	/usr/local/go/src/net/http/server.go:2927 +0x38e
err: dial tcp 127.0.0.1:9000: connect: connection refused2019/10/29 14:05:31 http: panic serving 127.0.0.1:54025: runtime error: invalid memory address or nil pointer dereference
goroutine 53 [running]:
net/http.(*conn).serve.func1(0xc0001961e0)
	/usr/local/go/src/net/http/server.go:1767 +0x139
panic(0x12c40a0, 0x1562980)
	/usr/local/go/src/runtime/panic.go:679 +0x1b2
github.com/beberlei/hhvm-serve/fcgiclient.(*FCGIClient).Request(0xc0001281e0, 0xc0001337d0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
	/Users/olojkine/go/src/github.com/beberlei/hhvm-serve/fcgiclient/fastcgi.go:294 +0x6e
main.handler(0x138ad80, 0xc0001c81c0, 0xc000234000)
	/Users/olojkine/go/src/github.com/beberlei/fastcgi-serve/fastcgi-serve.go:91 +0xb0f
net/http.HandlerFunc.ServeHTTP(0x13372e8, 0x138ad80, 0xc0001c81c0, 0xc000234000)
	/usr/local/go/src/net/http/server.go:2007 +0x44
net/http.(*ServeMux).ServeHTTP(0x156eac0, 0x138ad80, 0xc0001c81c0, 0xc000234000)
	/usr/local/go/src/net/http/server.go:2387 +0x1bd
net/http.serverHandler.ServeHTTP(0xc000118000, 0x138ad80, 0xc0001c81c0, 0xc000234000)
	/usr/local/go/src/net/http/server.go:2802 +0xa4
net/http.(*conn).serve(0xc0001961e0, 0x138b3c0, 0xc000150140)
	/usr/local/go/src/net/http/server.go:1890 +0x875
created by net/http.(*Server).Serve
	/usr/local/go/src/net/http/server.go:2927 +0x38e
err: dial tcp 127.0.0.1:9000: connect: connection refused2019/10/29 14:05:31 http: panic serving 127.0.0.1:54027: runtime error: invalid memory address or nil pointer dereference
goroutine 54 [running]:
net/http.(*conn).serve.func1(0xc000196280)
	/usr/local/go/src/net/http/server.go:1767 +0x139
panic(0x12c40a0, 0x1562980)
	/usr/local/go/src/runtime/panic.go:679 +0x1b2
github.com/beberlei/hhvm-serve/fcgiclient.(*FCGIClient).Request(0xc00021c0f0, 0xc0001337d0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
	/Users/olojkine/go/src/github.com/beberlei/hhvm-serve/fcgiclient/fastcgi.go:294 +0x6e
main.handler(0x138ad80, 0xc0001a60e0, 0xc000190100)
	/Users/olojkine/go/src/github.com/beberlei/fastcgi-serve/fastcgi-serve.go:91 +0xb0f
net/http.HandlerFunc.ServeHTTP(0x13372e8, 0x138ad80, 0xc0001a60e0, 0xc000190100)
	/usr/local/go/src/net/http/server.go:2007 +0x44
net/http.(*ServeMux).ServeHTTP(0x156eac0, 0x138ad80, 0xc0001a60e0, 0xc000190100)
	/usr/local/go/src/net/http/server.go:2387 +0x1bd
net/http.serverHandler.ServeHTTP(0xc000118000, 0x138ad80, 0xc0001a60e0, 0xc000190100)
	/usr/local/go/src/net/http/server.go:2802 +0xa4
net/http.(*conn).serve(0xc000196280, 0x138b3c0, 0xc0000802c0)
	/usr/local/go/src/net/http/server.go:1890 +0x875
created by net/http.(*Server).Serve
	/usr/local/go/src/net/http/server.go:2927 +0x38e
err: dial tcp 127.0.0.1:9000: connect: connection refused2019/10/29 14:05:31 http: panic serving 127.0.0.1:54029: runtime error: invalid memory address or nil pointer dereference
goroutine 56 [running]:
net/http.(*conn).serve.func1(0xc0001963c0)
	/usr/local/go/src/net/http/server.go:1767 +0x139
panic(0x12c40a0, 0x1562980)
	/usr/local/go/src/runtime/panic.go:679 +0x1b2
github.com/beberlei/hhvm-serve/fcgiclient.(*FCGIClient).Request(0xc0001bc320, 0xc0001337d0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
	/Users/olojkine/go/src/github.com/beberlei/hhvm-serve/fcgiclient/fastcgi.go:294 +0x6e
main.handler(0x138ad80, 0xc0001181c0, 0xc000234100)
	/Users/olojkine/go/src/github.com/beberlei/fastcgi-serve/fastcgi-serve.go:91 +0xb0f
net/http.HandlerFunc.ServeHTTP(0x13372e8, 0x138ad80, 0xc0001181c0, 0xc000234100)
	/usr/local/go/src/net/http/server.go:2007 +0x44
net/http.(*ServeMux).ServeHTTP(0x156eac0, 0x138ad80, 0xc0001181c0, 0xc000234100)
	/usr/local/go/src/net/http/server.go:2387 +0x1bd
net/http.serverHandler.ServeHTTP(0xc000118000, 0x138ad80, 0xc0001181c0, 0xc000234100)
	/usr/local/go/src/net/http/server.go:2802 +0xa4
net/http.(*conn).serve(0xc0001963c0, 0x138b3c0, 0xc0001501c0)
	/usr/local/go/src/net/http/server.go:1890 +0x875
created by net/http.(*Server).Serve
	/usr/local/go/src/net/http/server.go:2927 +0x38e
err: dial tcp 127.0.0.1:9000: connect: connection refused2019/10/29 14:05:31 http: panic serving 127.0.0.1:54031: runtime error: invalid memory address or nil pointer dereference
goroutine 57 [running]:
net/http.(*conn).serve.func1(0xc000196460)
	/usr/local/go/src/net/http/server.go:1767 +0x139
panic(0x12c40a0, 0x1562980)
	/usr/local/go/src/runtime/panic.go:679 +0x1b2
github.com/beberlei/hhvm-serve/fcgiclient.(*FCGIClient).Request(0xc00021c1e0, 0xc0001337d0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
	/Users/olojkine/go/src/github.com/beberlei/hhvm-serve/fcgiclient/fastcgi.go:294 +0x6e
main.handler(0x138ad80, 0xc0001a61c0, 0xc00013a300)
	/Users/olojkine/go/src/github.com/beberlei/fastcgi-serve/fastcgi-serve.go:91 +0xb0f
net/http.HandlerFunc.ServeHTTP(0x13372e8, 0x138ad80, 0xc0001a61c0, 0xc00013a300)
	/usr/local/go/src/net/http/server.go:2007 +0x44
net/http.(*ServeMux).ServeHTTP(0x156eac0, 0x138ad80, 0xc0001a61c0, 0xc00013a300)
	/usr/local/go/src/net/http/server.go:2387 +0x1bd
net/http.serverHandler.ServeHTTP(0xc000118000, 0x138ad80, 0xc0001a61c0, 0xc00013a300)
	/usr/local/go/src/net/http/server.go:2802 +0xa4
net/http.(*conn).serve(0xc000196460, 0x138b3c0, 0xc0000e07c0)
	/usr/local/go/src/net/http/server.go:1890 +0x875
created by net/http.(*Server).Serve
	/usr/local/go/src/net/http/server.go:2927 +0x38e

lovasoa avatar Oct 29 '19 13:10 lovasoa

I think the problem is a missing return here: https://github.com/beberlei/fastcgi-serve/blob/master/fastcgi-serve.go#L88

lovasoa avatar Oct 29 '19 13:10 lovasoa