This error: panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xb code=0x1 addr=0x20 pc=0x401487] goroutine 1 [running]: panic(0x50bfa0, 0xc82000a0c0) /usr/lib/go-1.6/src/runtime/panic.go:481 +0x3e6 main.main() /root/Whois3/rest-whois-threaded/main.go:65 +0x67 Is produced by this code: I commented line 65. Is there an error in the go? package main import ( "os" "net" "syscall" "time" ) func reader(incoming net.Conn, outgoing net.Conn,ready chan bool) { var buffer []byte <- ready buffer = make([]byte,2) for { read, _ := incoming.Read(buffer) outgoing.Write(buffer) if read == 0 { break } } return } func writer(outgoing net.Conn, incoming net.Conn, ready chan bool) { var buffer []byte <- ready buffer = make([]byte,2) for { read, _ := outgoing.Read(buffer) incoming.Write(buffer) if read == 0 { break } } return } func worker(connection net.Conn) { var ready chan bool var app net.Conn var process *os.Process var attr *syscall.ProcAttr var stuff []string attr.Dir = "/my/dir" pid,_ := syscall.ForkExec("/my/exec", stuff, attr) process.Pid = pid app, _= net.Dial("tcp", "127.0.0.1:5000") go reader(connection,app,ready) go writer(connection,app,ready) ready <- true time.Sleep(7 * time.Second) process.Kill() return } func main() { ln, _ := net.Listen("tcp", ":80") for { conn, _ := ln.Accept() // Line 65 go worker(conn) } } -- 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.