royiro10 / cogo

MIT License
2 stars 1 forks source link

Feature/restart #44

Open yavidor opened 3 months ago

yavidor commented 3 months ago

WIP

royiro10 commented 3 months ago

please notice. I tried running this and then killing a failed command, resulting in panic:

Client

$ ./cogo.exe -s test -r run ech hi
$ ./cogo.exe -s test kill

panic: EOF

goroutine 1 [running]:
github.com/royiro10/cogo/common.(*Logger).Fatal(0xfd5e10, {0xe01160, 0xfcc560})
        C:/Users/RoySchenker/source/repos/tmp/cogo/common/logger.go:84 +0x1e5
github.com/royiro10/cogo/cmd.(*CogoCLI).Handle(0xc00002e230, {0xc00006e0b0?, 0xc0000600b8?, 0xe84d28?}, 0xc00002e220?)
        C:/Users/RoySchenker/source/repos/tmp/cogo/cmd/cli_controller.go:72 +0xed
main.main()
        C:/Users/RoySchenker/source/repos/tmp/cogo/main.go:42 +0x277

Daemon

./cogo.exe start
level=DEBUG source=C:/Users/RoySchenker/source/repos/tmp/cogo/services/commands/session.go:70 msg="Registered pipe logging"
level=INFO source=C:/Users/RoySchenker/source/repos/tmp/cogo/server/daemon.go:38 msg="Daemon is running..."
level=DEBUG source=C:/Users/RoySchenker/source/repos/tmp/cogo/server/daemon.go:46 msg="started socket server for IPC" addr=127.0.0.1:3001
level=DEBUG source=C:/Users/RoySchenker/source/repos/tmp/cogo/server/daemon.go:54 msg="accepting connections"
level=DEBUG source=C:/Users/RoySchenker/source/repos/tmp/cogo/server/daemon.go:54 msg="accepting connections"
level=INFO source=C:/Users/RoySchenker/source/repos/tmp/cogo/server/daemon.go:75 msg="Background process received message" request="&{BaseCogoMessageposetaimplevel=INFO source=C:/Users/RoySchenker/source/repos/tmp/cogo/services/commands/command_service.go:101 msg="Handle command" sessionId=test command="ech hi"
level=DEBUG source=C:/Users/RoySchenker/source/repos/tmp/cogo/services/commands/session.go:70 msg="Registered pipe logging"
level=DEBUG source=C:/Users/RoySchenker/source/repos/tmp/cogo/services/commands/command_service.go:205 msg="Requested session Id does not exists. created new session" sessionId=test
level=DEBUG source=C:/Users/RoySchenker/source/repos/tmp/cogo/services/commands/session.go:213 msg=execution command="ech hi"
level=INFO source=C:/Users/RoySchenker/source/repos/tmp/cogo/services/commands/pipe.go:29 msg="exec: "ech": executable file not found in %PATH%" pipe=STDERR
level=INFO source=C:/Users/RoySchenker/source/repos/tmp/cogo/services/commands/pipe.go:29 msg="exec: "ech": executable file not found in %PATH%" pipe=STDERR
level=INFO source=C:/Users/RoySchenker/source/repos/tmp/cogo/services/commands/pipe.go:29 msg="exec: "ech": executable file not found in %PATH%" pipe=STDERR
level=INFO source=C:/Users/RoySchenker/source/repos/tmp/cogo/services/commands/pipe.go:29 msg="exec: "ech": executable file not found in %PATH%" pipe=STDERR
level=INFO source=C:/Users/RoySchenker/source/repos/tmp/cogo/services/commands/pipe.go:29 msg="exec: "ech": executable file not found in %PATH%" pipe=STDERR
level=INFO source=C:/Users/RoySchenker/source/repos/tmp/cogo/services/commands/pipe.go:29 msg="exec: "ech": executable file not found in %PATH%" pipe=STDERR
level=DEBUG source=C:/Users/RoySchenker/source/repos/tmp/cogo/server/daemon.go:54 msg="accepting connections"
level=INFO source=C:/Users/RoySchenker/source/repos/tmp/cogo/server/daemon.go:75 msg="Background process received message" request="&{BaseCogoMessage:{Details:{Version:1 Type:KillRequest}} SessionId:test}"
level=INFO source=C:/Users/RoySchenker/source/repos/tmp/cogo/services/commands/command_service.go:130 msg="Handle kill" sessionId=test
level=panic: runtime error: invalid memory address or nil pointer dereference
level=[signal 0xc0000005 code=0x0 addr=0x8 pc=0xd0fb39]
level=
level=goroutine 9 [running]:
level=os.(*Process).signal(0xfd6840?, {0xe85708?, 0xfc1398?})
level=C:/Program Files/Go/src/os/exec_windows.go:43 +0x39
level=os.(*Process).Signal(...)
level=C:/Program Files/Go/src/os/exec.go:140
level=os.(*Process).kill(...)
level=C:/Program Files/Go/src/os/exec_posix.go:67
level=os.(*Process).Kill(...)
level=C:/Program Files/Go/src/os/exec.go:125
level=github.com/royiro10/cogo/services/commands.(*Session).stopCommandExecution(0xc0000ca0a0)
level=C:/Users/RoySchenker/source/repos/tmp/cogo/services/commands/session.go:206 +0x14f
level=github.com/royiro10/cogo/services/commands.(*Session).Kill(0xc0000ca0a0)
level=C:/Users/RoySchenker/source/repos/tmp/cogo/services/commands/session.go:85 +0x1f
level=github.com/royiro10/cogo/services/commands.(*CommandService).HandleKill(0xc00002e1f0, 0xc000286090)
level=C:/Users/RoySchenker/source/repos/tmp/cogo/services/commands/command_service.go:138 +0xf5
level=github.com/royiro10/cogo/server.(*CogoDaemon).handleMessage(0xc00009c010, {0xe88090, 0xc0000600e0})
level=C:/Users/RoySchenker/source/repos/tmp/cogo/server/daemon.go:83 +0x1ad
level=created by github.com/royiro10/cogo/server.(*CogoDaemon).Start in goroutine 1
level=C:/Users/RoySchenker/source/repos/tmp/cogo/server/daemon.go:60 +0x1bc