skygear-server
skygear-server copied to clipboard
Panic when uploading a asset
An panic is raised when a file is uploaded without Content-Type header. User would generally expect a error message instead of a panic occurred while handling request: runtime error: index out of range
.
A panic is raised when I try to upload a file...
Here is an output when using httpie. I can provide CURL equivalence if needed.
➜ client git:(master) ✗ http --form -p HhBb POST http://localhost:3000/files/640c9d3e-1400-4055-8788-c2eccb295336-IMG-20171112-WA0004.jpg X-Skygear-API-Key:FAKE_API_KEY file@/Users/limouren/Downloads/IMG-20171112-WA0004.jpg
POST /files/640c9d3e-1400-4055-8788-c2eccb295336-IMG-20171112-WA0004.jpg HTTP/1.1
Accept: */*
Accept-Encoding: gzip, deflate
Connection: keep-alive
Content-Length: 251872
Content-Type: multipart/form-data; boundary=dda7fa180c1e4434a70126edfb8a6018
Host: localhost:3000
User-Agent: HTTPie/0.9.3
X-Skygear-API-Key: FAKE_API_KEY
+-----------------------------------------+
| NOTE: binary data not shown in terminal |
+-----------------------------------------+
HTTP/1.1 500 Internal Server Error
Access-Control-Allow-Credentials: true
Access-Control-Allow-Origin: *
Content-Length: 135
Content-Type: application/json
Date: Tue, 14 Nov 2017 07:36:24 GMT
Server: Skygear Server/1.1.2
{
"error": {
"code": 10000,
"message": "panic occurred while handling request: runtime error: index out of range",
"name": "UnexpectedError"
}
}
Here is skygear-server's log:
DEBU[0006] POST /files/640c9d3e-1400-4055-8788-c2eccb295336-IMG-20171112-WA0004.jpg logger=router
DEBU[0006] ------ Header: ------ logger=router
DEBU[0006] X-Skygear-Api-Key: [FAKE_API_KEY] logger=router
DEBU[0006] Accept: [*/*] logger=router
DEBU[0006] Content-Type: [multipart/form-data; boundary=7304365069044c6ea58be96aeb015edf] logger=router
DEBU[0006] Content-Length: [251872] logger=router
DEBU[0006] Accept-Encoding: [gzip, deflate] logger=router
DEBU[0006] User-Agent: [HTTPie/0.9.3] logger=router
DEBU[0006] Connection: [keep-alive] logger=router
DEBU[0006] ------ Request: ------ logger=router
DEBU[0006] 251872 bytes of request body logger=router
DEBU[0006] Matched params: [640c9d3e-1400-4055-8788-c2eccb295336-IMG-20171112-WA0004.jpg] logger=router
DEBU[0006] Opening DBConn: {pq [CENSORED] postgresql://localhost/cms?sslmode=disable} logger=preprocessor
DEBU[0006] Get DB OK logger=preprocessor
ERRO[0006] panic occurred while handling request logger=router recovered="runtime error: index out of range"
ERRO[0006] goroutine 58 [running]:
runtime/debug.Stack(0x4741120, 0x47363a0, 0x4cd2e80)
/usr/local/Cellar/go/1.9/libexec/src/runtime/debug/stack.go:24 +0xa7
github.com/skygeario/skygear-server/pkg/server/router.errorFromRecoveringPanic(0x47363a0, 0x4cd2e80, 0x1, 0x1)
/Users/limouren/go/src/github.com/skygeario/skygear-server/pkg/server/router/errors.go:64 +0x1ad
github.com/skygeario/skygear-server/pkg/server/router.(*commonRouter).callHandler.func1(0xc4201d1200, 0xc420155f78)
/Users/limouren/go/src/github.com/skygeario/skygear-server/pkg/server/router/common.go:134 +0xed
panic(0x47363a0, 0x4cd2e80)
/usr/local/Cellar/go/1.9/libexec/src/runtime/panic.go:491 +0x283
github.com/skygeario/skygear-server/pkg/server/handler.parseUploadFileRequest(0xc4202b62c0, 0x48159e9, 0x4, 0xc42001840d)
/Users/limouren/go/src/github.com/skygeario/skygear-server/pkg/server/handler/file.go:293 +0x6ee
github.com/skygeario/skygear-server/pkg/server/handler.(*UploadFileHandler).Handle(0xc42007f720, 0xc4202b62c0, 0xc4201d1200)
/Users/limouren/go/src/github.com/skygeario/skygear-server/pkg/server/handler/file.go:192 +0x56
github.com/skygeario/skygear-server/pkg/server/router.(*commonRouter).callHandler(0xc42044f650, 0x4ca1760, 0xc42007f720, 0xc4201eb200, 0x2, 0x2, 0xc4202b62c0, 0xc4201d1200, 0xc8)
/Users/limouren/go/src/github.com/skygeario/skygear-server/pkg/server/router/common.go:149 +0x13b
github.com/skygeario/skygear-server/pkg/server/router.(*commonRouter).HandlePayload.func2(0xc4202a68f8, 0xc42044f650, 0x4ca1760, 0xc42007f720, 0xc4201eb200, 0x2, 0x2, 0xc4202b62c0, 0xc4201d1200, 0xc4201894a0)
/Users/limouren/go/src/github.com/skygeario/skygear-server/pkg/server/router/common.go:113 +0x81
created by github.com/skygeario/skygear-server/pkg/server/router.(*commonRouter).HandlePayload
/Users/limouren/go/src/github.com/skygeario/skygear-server/pkg/server/router/common.go:112 +0x1f6
logger=router
DEBU[0006] ------ Response: ------ logger=router
DEBU[0006] 135 bytes of response body logger=router
- Skygear Server Date/Version: v1.1.2
- Application Platform: MacOS 10.13.1 (17B48)
- [ ] Is this a regression?
- [x] Attached logs, screenshots
Expected Results
Either success or failure with reason.
Actual Results
See issue description.
Steps to reproduce
See issue description.
Added server log.