- changed status to resolved
set.go: panic when adding cron without ENABLE_CRON
Issue #276
resolved
Creating a cron on a VidGrind instance that doesn’t have ENABLE_CRON
set to true causes a panic when a cron is added via the cron page.
ERROR 2023-08-17T05:23:55.061195Z 2023/08/17 05:23:54 http: panic serving 127.0.0.1:43407: runtime error: invalid memory address or nil pointer dereference goroutine 29022 [running]: net/http.(*conn).serve.func1() /layers/google.go.runtime/go/src/net/http/server.go:1825 +0xbf panic({0xcbbac0, 0x14e9470}) /layers/google.go.runtime/go/src/runtime/panic.go:844 +0x258 main.(*scheduler).set(0x0, 0xc000a72ea0) /layers/google.go.appengine-gomod/srv/cron.go:108 +0xb9 main.editCronsHandler({0xf55630, 0xc000603c00}, 0xc00013f700) /layers/google.go.appengine-gomod/srv/set.go:673 +0x685 net/http.HandlerFunc.ServeHTTP(0x72?, {0xf55630?, 0xc000603c00?}, 0xc000a0d100?) /layers/google.go.runtime/go/src/net/http/server.go:2084 +0x2f net/http.(*ServeMux).ServeHTTP(0x0?, {0xf55630, 0xc000603c00}, 0xc00013f700) /layers/google.go.runtime/go/src/net/http/server.go:2462 +0x149 net/http.serverHandler.ServeHTTP({0xf527f0?}, {0xf55630, 0xc000603c00}, 0xc00013f700) /layers/google.go.runtime/go/src/net/http/server.go:2916 +0x43b net/http.(*conn).serve(0xc00073fb80, {0xf56170, 0xc000191290}) /layers/google.go.runtime/go/src/net/http/server.go:1966 +0x5d7 created by net/http.(*Server).Serve /layers/google.go.runtime/go/src/net/http/server.go:3071 +0x4db
{
"textPayload": "2023/08/17 05:23:54 http: panic serving 127.0.0.1:43407: runtime error: invalid memory address or nil pointer dereference\ngoroutine 29022 [running]:\nnet/http.(*conn).serve.func1()\n\t/layers/google.go.runtime/go/src/net/http/server.go:1825 +0xbf\npanic({0xcbbac0, 0x14e9470})\n\t/layers/google.go.runtime/go/src/runtime/panic.go:844 +0x258\nmain.(*scheduler).set(0x0, 0xc000a72ea0)\n\t/layers/google.go.appengine-gomod/srv/cron.go:108 +0xb9\nmain.editCronsHandler({0xf55630, 0xc000603c00}, 0xc00013f700)\n\t/layers/google.go.appengine-gomod/srv/set.go:673 +0x685\nnet/http.HandlerFunc.ServeHTTP(0x72?, {0xf55630?, 0xc000603c00?}, 0xc000a0d100?)\n\t/layers/google.go.runtime/go/src/net/http/server.go:2084 +0x2f\nnet/http.(*ServeMux).ServeHTTP(0x0?, {0xf55630, 0xc000603c00}, 0xc00013f700)\n\t/layers/google.go.runtime/go/src/net/http/server.go:2462 +0x149\nnet/http.serverHandler.ServeHTTP({0xf527f0?}, {0xf55630, 0xc000603c00}, 0xc00013f700)\n\t/layers/google.go.runtime/go/src/net/http/server.go:2916 +0x43b\nnet/http.(*conn).serve(0xc00073fb80, {0xf56170, 0xc000191290})\n\t/layers/google.go.runtime/go/src/net/http/server.go:1966 +0x5d7\ncreated by net/http.(*Server).Serve\n\t/layers/google.go.runtime/go/src/net/http/server.go:3071 +0x4db",
"insertId": "64ddaeeb0000ef0be4493b72",
"resource": {
"type": "gae_app",
"labels": {
"version_id": "8",
"project_id": "vidgrind",
"zone": "australia-southeast1-3",
"module_id": "default"
}
},
"timestamp": "2023-08-17T05:23:55.061195Z",
"severity": "ERROR",
"labels": {
"clone_id": "00c61b117cbc08a496c2449f5040145fc2c7b111181812c107fbd937dadc81b4cf81ed5c9905b5221d65d4058f59e558229a4cd3be539f82e83e8c"
},
"logName": "projects/vidgrind/logs/stderr",
"receiveTimestamp": "2023-08-17T05:23:55.348404091Z"
}
editCronHandler
in set.go calls cronScheduler.set()
but cronScheduler
was never initialise due to ENABLE_CRON
being false.
For now we can use the instance of OceanCron to set crons and broadcast repeats because ENABLE_CRON
is true.
Comments (1)
-
reporter - Log in to comment
Resolved in PR #272