Skip to content

Parallel writes end up in write conflicts #6

@0xmichalis

Description

@0xmichalis

When multiple processes try to write to the fhir server, the requests fail with write conflicts. I am able to work around this issue by using the X-Mutex-Name header documented here but I was wondering whether this issue is meant to be fixed appropriately by having some sort of deterministic concurrency control baked into the server.

ps.1 The writes in the server are independent resources in my case (they are all resource creations).

ps.2 I am using the all-in-one image that bakes Mongo in it.

Details
handlePanics: recovered: (WriteConflict) WriteConflict
MongoDB operation error (/go/src/github.com/eug48/fhir/server/mongo_data_access.go:434)
github.com/eug48/fhir/server.convertMongoErr
	/go/src/github.com/eug48/fhir/server/mongo_data_access.go:1148
github.com/eug48/fhir/server.(*mongoSession).PostWithID
	/go/src/github.com/eug48/fhir/server/mongo_data_access.go:434
github.com/eug48/fhir/server.(*BatchController).doRequest
	/go/src/github.com/eug48/fhir/server/batch_controller.go:417
github.com/eug48/fhir/server.(*BatchController).Post
	/go/src/github.com/eug48/fhir/server/batch_controller.go:303
github.com/eug48/fhir/server.(*BatchController).Post-fm
	/go/src/github.com/eug48/fhir/server/routing.go:128
github.com/eug48/fhir/vendor/github.com/gin-gonic/gin.(*Context).Next
	/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/context.go:109
github.com/eug48/fhir/fhir-server/middleware.ClientSpecifiedMutexesMiddleware.func2
	/go/src/github.com/eug48/fhir/fhir-server/middleware/client_specified_mutexes.go:95
github.com/eug48/fhir/vendor/github.com/gin-gonic/gin.(*Context).Next
	/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/context.go:109
github.com/eug48/fhir/server.AbortNonFhirXMLorJSONRequestsMiddleware
	/go/src/github.com/eug48/fhir/server/middleware.go:43
github.com/eug48/fhir/vendor/github.com/gin-gonic/gin.(*Context).Next
	/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/context.go:109
github.com/eug48/fhir/server.EnableXmlToJsonConversionMiddleware.func1
	/go/src/github.com/eug48/fhir/server/middleware.go:14
github.com/eug48/fhir/vendor/github.com/gin-gonic/gin.(*Context).Next
	/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/context.go:109
github.com/eug48/fhir/vendor/github.com/gin-gonic/gin.RecoveryWithWriter.func1
	/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/recovery.go:76
github.com/eug48/fhir/vendor/github.com/gin-gonic/gin.(*Context).Next
	/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/context.go:109
github.com/eug48/fhir/vendor/github.com/gin-gonic/gin.LoggerWithWriter.func1
	/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/logger.go:84
github.com/eug48/fhir/vendor/github.com/gin-gonic/gin.(*Context).Next
	/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/context.go:109
github.com/eug48/fhir/vendor/github.com/gin-gonic/gin.(*Engine).handleHTTPRequest
	/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/gin.go:383
github.com/eug48/fhir/vendor/github.com/gin-gonic/gin.(*Engine).ServeHTTP
	/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/gin.go:349
net/http.serverHandler.ServeHTTP
	/usr/local/go/src/net/http/server.go:2697
net/http.(*conn).serve
	/usr/local/go/src/net/http/server.go:1830
runtime.goexit
	/usr/local/go/src/runtime/asm_amd64.s:2361
failed to create Encounter
github.com/eug48/fhir/server.(*BatchController).doRequest
	/go/src/github.com/eug48/fhir/server/batch_controller.go:419
github.com/eug48/fhir/server.(*BatchController).Post
	/go/src/github.com/eug48/fhir/server/batch_controller.go:303
github.com/eug48/fhir/server.(*BatchController).Post-fm
	/go/src/github.com/eug48/fhir/server/routing.go:128
github.com/eug48/fhir/vendor/github.com/gin-gonic/gin.(*Context).Next
	/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/context.go:109
github.com/eug48/fhir/fhir-server/middleware.ClientSpecifiedMutexesMiddleware.func2
	/go/src/github.com/eug48/fhir/fhir-server/middleware/client_specified_mutexes.go:95
github.com/eug48/fhir/vendor/github.com/gin-gonic/gin.(*Context).Next
	/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/context.go:109
github.com/eug48/fhir/server.AbortNonFhirXMLorJSONRequestsMiddleware
	/go/src/github.com/eug48/fhir/server/middleware.go:43
github.com/eug48/fhir/vendor/github.com/gin-gonic/gin.(*Context).Next
	/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/context.go:109
github.com/eug48/fhir/server.EnableXmlToJsonConversionMiddleware.func1
	/go/src/github.com/eug48/fhir/server/middleware.go:14
github.com/eug48/fhir/vendor/github.com/gin-gonic/gin.(*Context).Next
	/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/context.go:109
github.com/eug48/fhir/vendor/github.com/gin-gonic/gin.RecoveryWithWriter.func1
	/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/recovery.go:76
github.com/eug48/fhir/vendor/github.com/gin-gonic/gin.(*Context).Next
	/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/context.go:109
github.com/eug48/fhir/vendor/github.com/gin-gonic/gin.LoggerWithWriter.func1
	/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/logger.go:84
github.com/eug48/fhir/vendor/github.com/gin-gonic/gin.(*Context).Next
	/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/context.go:109
github.com/eug48/fhir/vendor/github.com/gin-gonic/gin.(*Engine).handleHTTPRequest
	/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/gin.go:383
github.com/eug48/fhir/vendor/github.com/gin-gonic/gin.(*Engine).ServeHTTP
	/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/gin.go:349
net/http.serverHandler.ServeHTTP
	/usr/local/go/src/net/http/server.go:2697
net/http.(*conn).serve
	/usr/local/go/src/net/http/server.go:1830
runtime.goexit
	/usr/local/go/src/runtime/asm_amd64.s:2361
    goroutine 15 [running]:
runtime/debug.Stack(0x149e000, 0xc42066da00, 0x149e000)
	/usr/local/go/src/runtime/debug/stack.go:24 +0xa7
github.com/eug48/fhir/server.ErrorToOpOutcome(0xf54200, 0xc421e3ac80, 0xc4214e1580, 0x1)
	/go/src/github.com/eug48/fhir/server/errors.go:29 +0x474
github.com/eug48/fhir/server.(*BatchController).Post(0xc4200f9b80, 0xc4217ac370)
	/go/src/github.com/eug48/fhir/server/batch_controller.go:318 +0x25f4
github.com/eug48/fhir/server.(*BatchController).Post-fm(0xc4217ac370)
	/go/src/github.com/eug48/fhir/server/routing.go:128 +0x34
github.com/eug48/fhir/vendor/github.com/gin-gonic/gin.(*Context).Next(0xc4217ac370)
	/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/context.go:109 +0x43
github.com/eug48/fhir/fhir-server/middleware.ClientSpecifiedMutexesMiddleware.func2(0xc4217ac370)
	/go/src/github.com/eug48/fhir/fhir-server/middleware/client_specified_mutexes.go:95 +0xbc
github.com/eug48/fhir/vendor/github.com/gin-gonic/gin.(*Context).Next(0xc4217ac370)
	/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/context.go:109 +0x43
github.com/eug48/fhir/server.AbortNonFhirXMLorJSONRequestsMiddleware(0xc4217ac370)
	/go/src/github.com/eug48/fhir/server/middleware.go:43 +0x1c7
github.com/eug48/fhir/vendor/github.com/gin-gonic/gin.(*Context).Next(0xc4217ac370)
	/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/context.go:109 +0x43
github.com/eug48/fhir/server.EnableXmlToJsonConversionMiddleware.func1(0xc4217ac370)
	/go/src/github.com/eug48/fhir/server/middleware.go:14 +0x9e
github.com/eug48/fhir/vendor/github.com/gin-gonic/gin.(*Context).Next(0xc4217ac370)
	/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/context.go:109 +0x43
github.com/eug48/fhir/vendor/github.com/gin-gonic/gin.RecoveryWithWriter.func1(0xc4217ac370)
	/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/recovery.go:76 +0x5a
github.com/eug48/fhir/vendor/github.com/gin-gonic/gin.(*Context).Next(0xc4217ac370)
	/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/context.go:109 +0x43
github.com/eug48/fhir/vendor/github.com/gin-gonic/gin.LoggerWithWriter.func1(0xc4217ac370)
	/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/logger.go:84 +0xcc
github.com/eug48/fhir/vendor/github.com/gin-gonic/gin.(*Context).Next(0xc4217ac370)
	/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/context.go:109 +0x43
github.com/eug48/fhir/vendor/github.com/gin-gonic/gin.(*Engine).handleHTTPRequest(0xc420386000, 0xc4217ac370)
	/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/gin.go:383 +0x586
github.com/eug48/fhir/vendor/github.com/gin-gonic/gin.(*Engine).ServeHTTP(0xc420386000, 0x14a4f60, 0xc420384fc0, 0xc4210a2800)
	/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/gin.go:349 +0x153
net/http.serverHandler.ServeHTTP(0xc4200a9a00, 0x14a4f60, 0xc420384fc0, 0xc4210a2800)
	/usr/local/go/src/net/http/server.go:2697 +0xbc
net/http.(*conn).serve(0xc4214fd680, 0x14a71a0, 0xc42270f640)
	/usr/local/go/src/net/http/server.go:1830 +0x651
created by net/http.(*Server).Serve
	/usr/local/go/src/net/http/server.go:2798 +0x27b
[GIN] 2019/05/22 - 11:08:34 | 500 |    322.9276ms |       10.1.11.3 | POST     /


2019/05/22 11:08:34 [Recovery] 2019/05/22 - 11:08:34 panic recovered:
POST / HTTP/1.1
Host: fhirserver:3001
Accept-Encoding: gzip
Content-Length: 1117334
Content-Type: application/json
User-Agent: Go-http-client/1.1


session.Finish error: (NoSuchTransaction) Transaction 1 has been aborted.
/usr/local/go/src/runtime/panic.go:502 (0x4344b8)
/go/src/github.com/eug48/fhir/server/mongo_data_access.go:115 (0xd7df3f)
/go/src/github.com/eug48/fhir/server/batch_controller.go:321 (0xd76e85)
/go/src/github.com/eug48/fhir/server/routing.go:128 (0xd99813)
/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/context.go:109 (0x947e52)
/go/src/github.com/eug48/fhir/fhir-server/middleware/client_specified_mutexes.go:95 (0x9a37eb)
/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/context.go:109 (0x947e52)
/go/src/github.com/eug48/fhir/server/middleware.go:43 (0xd7d0b6)
/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/context.go:109 (0x947e52)
/go/src/github.com/eug48/fhir/server/middleware.go:14 (0xd98dbd)
/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/context.go:109 (0x947e52)
/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/recovery.go:76 (0x959d69)
/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/context.go:109 (0x947e52)
/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/logger.go:84 (0x958bbb)
/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/context.go:109 (0x947e52)
/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/gin.go:383 (0x950a25)
/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/gin.go:349 (0x9502b2)
/usr/local/go/src/net/http/server.go:2697 (0x68bc0b)
/usr/local/go/src/net/http/server.go:1830 (0x687d40)
/usr/local/go/src/runtime/asm_amd64.s:2361 (0x460df0)

handlePanics: recovered: (WriteConflict) WriteConflict
MongoDB operation error (/go/src/github.com/eug48/fhir/server/mongo_data_access.go:434)
github.com/eug48/fhir/server.convertMongoErr
	/go/src/github.com/eug48/fhir/server/mongo_data_access.go:1148
github.com/eug48/fhir/server.(*mongoSession).PostWithID
	/go/src/github.com/eug48/fhir/server/mongo_data_access.go:434
github.com/eug48/fhir/server.(*BatchController).doRequest
	/go/src/github.com/eug48/fhir/server/batch_controller.go:417
github.com/eug48/fhir/server.(*BatchController).Post
	/go/src/github.com/eug48/fhir/server/batch_controller.go:303
github.com/eug48/fhir/server.(*BatchController).Post-fm
	/go/src/github.com/eug48/fhir/server/routing.go:128
github.com/eug48/fhir/vendor/github.com/gin-gonic/gin.(*Context).Next
	/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/context.go:109
github.com/eug48/fhir/fhir-server/middleware.ClientSpecifiedMutexesMiddleware.func2
	/go/src/github.com/eug48/fhir/fhir-server/middleware/client_specified_mutexes.go:95
github.com/eug48/fhir/vendor/github.com/gin-gonic/gin.(*Context).Next
	/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/context.go:109
github.com/eug48/fhir/server.AbortNonFhirXMLorJSONRequestsMiddleware
	/go/src/github.com/eug48/fhir/server/middleware.go:43
github.com/eug48/fhir/vendor/github.com/gin-gonic/gin.(*Context).Next
	/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/context.go:109
github.com/eug48/fhir/server.EnableXmlToJsonConversionMiddleware.func1
	/go/src/github.com/eug48/fhir/server/middleware.go:14
github.com/eug48/fhir/vendor/github.com/gin-gonic/gin.(*Context).Next
	/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/context.go:109
github.com/eug48/fhir/vendor/github.com/gin-gonic/gin.RecoveryWithWriter.func1
	/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/recovery.go:76
github.com/eug48/fhir/vendor/github.com/gin-gonic/gin.(*Context).Next
	/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/context.go:109
github.com/eug48/fhir/vendor/github.com/gin-gonic/gin.LoggerWithWriter.func1
	/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/logger.go:84
github.com/eug48/fhir/vendor/github.com/gin-gonic/gin.(*Context).Next
	/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/context.go:109
github.com/eug48/fhir/vendor/github.com/gin-gonic/gin.(*Engine).handleHTTPRequest
	/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/gin.go:383
github.com/eug48/fhir/vendor/github.com/gin-gonic/gin.(*Engine).ServeHTTP
	/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/gin.go:349
net/http.serverHandler.ServeHTTP
	/usr/local/go/src/net/http/server.go:2697
net/http.(*conn).serve
	/usr/local/go/src/net/http/server.go:1830
runtime.goexit
	/usr/local/go/src/runtime/asm_amd64.s:2361
failed to create Encounter
github.com/eug48/fhir/server.(*BatchController).doRequest
	/go/src/github.com/eug48/fhir/server/batch_controller.go:419
github.com/eug48/fhir/server.(*BatchController).Post
	/go/src/github.com/eug48/fhir/server/batch_controller.go:303
github.com/eug48/fhir/server.(*BatchController).Post-fm
	/go/src/github.com/eug48/fhir/server/routing.go:128
github.com/eug48/fhir/vendor/github.com/gin-gonic/gin.(*Context).Next
	/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/context.go:109
github.com/eug48/fhir/fhir-server/middleware.ClientSpecifiedMutexesMiddleware.func2
	/go/src/github.com/eug48/fhir/fhir-server/middleware/client_specified_mutexes.go:95
github.com/eug48/fhir/vendor/github.com/gin-gonic/gin.(*Context).Next
	/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/context.go:109
github.com/eug48/fhir/server.AbortNonFhirXMLorJSONRequestsMiddleware
	/go/src/github.com/eug48/fhir/server/middleware.go:43
github.com/eug48/fhir/vendor/github.com/gin-gonic/gin.(*Context).Next
	/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/context.go:109
github.com/eug48/fhir/server.EnableXmlToJsonConversionMiddleware.func1
	/go/src/github.com/eug48/fhir/server/middleware.go:14
github.com/eug48/fhir/vendor/github.com/gin-gonic/gin.(*Context).Next
	/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/context.go:109
github.com/eug48/fhir/vendor/github.com/gin-gonic/gin.RecoveryWithWriter.func1
	/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/recovery.go:76
github.com/eug48/fhir/vendor/github.com/gin-gonic/gin.(*Context).Next
	/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/context.go:109
github.com/eug48/fhir/vendor/github.com/gin-gonic/gin.LoggerWithWriter.func1
	/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/logger.go:84
github.com/eug48/fhir/vendor/github.com/gin-gonic/gin.(*Context).Next
	/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/context.go:109
github.com/eug48/fhir/vendor/github.com/gin-gonic/gin.(*Engine).handleHTTPRequest
	/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/gin.go:383
github.com/eug48/fhir/vendor/github.com/gin-gonic/gin.(*Engine).ServeHTTP
	/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/gin.go:349
net/http.serverHandler.ServeHTTP
	/usr/local/go/src/net/http/server.go:2697
net/http.(*conn).serve
	/usr/local/go/src/net/http/server.go:1830
runtime.goexit
	/usr/local/go/src/runtime/asm_amd64.s:2361
    goroutine 52 [running]:
runtime/debug.Stack(0x149e000, 0xc420365600, 0x149e000)
	/usr/local/go/src/runtime/debug/stack.go:24 +0xa7
github.com/eug48/fhir/server.ErrorToOpOutcome(0xf54200, 0xc4203fba00, 0xc421e27580, 0x1)
	/go/src/github.com/eug48/fhir/server/errors.go:29 +0x474
github.com/eug48/fhir/server.(*BatchController).Post(0xc4200f9b80, 0xc4217ac420)
	/go/src/github.com/eug48/fhir/server/batch_controller.go:318 +0x25f4
github.com/eug48/fhir/server.(*BatchController).Post-fm(0xc4217ac420)
	/go/src/github.com/eug48/fhir/server/routing.go:128 +0x34
github.com/eug48/fhir/vendor/github.com/gin-gonic/gin.(*Context).Next(0xc4217ac420)
	/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/context.go:109 +0x43
github.com/eug48/fhir/fhir-server/middleware.ClientSpecifiedMutexesMiddleware.func2(0xc4217ac420)
	/go/src/github.com/eug48/fhir/fhir-server/middleware/client_specified_mutexes.go:95 +0xbc
github.com/eug48/fhir/vendor/github.com/gin-gonic/gin.(*Context).Next(0xc4217ac420)
	/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/context.go:109 +0x43
github.com/eug48/fhir/server.AbortNonFhirXMLorJSONRequestsMiddleware(0xc4217ac420)
	/go/src/github.com/eug48/fhir/server/middleware.go:43 +0x1c7
github.com/eug48/fhir/vendor/github.com/gin-gonic/gin.(*Context).Next(0xc4217ac420)
	/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/context.go:109 +0x43
github.com/eug48/fhir/server.EnableXmlToJsonConversionMiddleware.func1(0xc4217ac420)
	/go/src/github.com/eug48/fhir/server/middleware.go:14 +0x9e
github.com/eug48/fhir/vendor/github.com/gin-gonic/gin.(*Context).Next(0xc4217ac420)
	/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/context.go:109 +0x43
github.com/eug48/fhir/vendor/github.com/gin-gonic/gin.RecoveryWithWriter.func1(0xc4217ac420)
	/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/recovery.go:76 +0x5a
github.com/eug48/fhir/vendor/github.com/gin-gonic/gin.(*Context).Next(0xc4217ac420)
	/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/context.go:109 +0x43
github.com/eug48/fhir/vendor/github.com/gin-gonic/gin.LoggerWithWriter.func1(0xc4217ac420)
	/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/logger.go:84 +0xcc
github.com/eug48/fhir/vendor/github.com/gin-gonic/gin.(*Context).Next(0xc4217ac420)
	/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/context.go:109 +0x43
github.com/eug48/fhir/vendor/github.com/gin-gonic/gin.(*Engine).handleHTTPRequest(0xc420386000, 0xc4217ac420)
	/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/gin.go:383 +0x586
github.com/eug48/fhir/vendor/github.com/gin-gonic/gin.(*Engine).ServeHTTP(0xc420386000, 0x14a4f60, 0xc420385180, 0xc4210a2a00)
	/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/gin.go:349 +0x153
net/http.serverHandler.ServeHTTP(0xc4200a9a00, 0x14a4f60, 0xc420385180, 0xc4210a2a00)
	/usr/local/go/src/net/http/server.go:2697 +0xbc
net/http.(*conn).serve(0xc422cde460, 0x14a71a0, 0xc42270f8c0)
	/usr/local/go/src/net/http/server.go:1830 +0x651
created by net/http.(*Server).Serve
	/usr/local/go/src/net/http/server.go:2798 +0x27b
[GIN] 2019/05/22 - 11:08:34 | 500 |    249.0425ms |       10.1.11.6 | POST     /


2019/05/22 11:08:34 [Recovery] 2019/05/22 - 11:08:34 panic recovered:
POST / HTTP/1.1
Host: fhirserver:3001
Accept-Encoding: gzip
Content-Length: 1117334
Content-Type: application/json
User-Agent: Go-http-client/1.1


session.Finish error: (NoSuchTransaction) Transaction 1 has been aborted.
/usr/local/go/src/runtime/panic.go:502 (0x4344b8)
/go/src/github.com/eug48/fhir/server/mongo_data_access.go:115 (0xd7df3f)
/go/src/github.com/eug48/fhir/server/batch_controller.go:321 (0xd76e85)
/go/src/github.com/eug48/fhir/server/routing.go:128 (0xd99813)
/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/context.go:109 (0x947e52)
/go/src/github.com/eug48/fhir/fhir-server/middleware/client_specified_mutexes.go:95 (0x9a37eb)
/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/context.go:109 (0x947e52)
/go/src/github.com/eug48/fhir/server/middleware.go:43 (0xd7d0b6)
/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/context.go:109 (0x947e52)
/go/src/github.com/eug48/fhir/server/middleware.go:14 (0xd98dbd)
/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/context.go:109 (0x947e52)
/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/recovery.go:76 (0x959d69)
/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/context.go:109 (0x947e52)
/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/logger.go:84 (0x958bbb)
/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/context.go:109 (0x947e52)
/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/gin.go:383 (0x950a25)
/go/src/github.com/eug48/fhir/vendor/github.com/gin-gonic/gin/gin.go:349 (0x9502b2)
/usr/local/go/src/net/http/server.go:2697 (0x68bc0b)
/usr/local/go/src/net/http/server.go:1830 (0x687d40)
/usr/local/go/src/runtime/asm_amd64.s:2361 (0x460df0)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions