owncloud / owncloud/ocis

idp cs3 backend session not surviving restart

Open
#3,966 4 comments 0 reactions 0 assignees View on GitHub
Type:Bug
Dominant language
Go
Stars
2.1k
Forks
274
Avg merge
2d 1h
Merged PRs (30d)
103

Description

I restarted the idp in my docker compose setup which starts separate services and saw this in the logs.
```
idp | {"level":"debug","service":"idp","request":"38fd4ee3-96d4-4dd4-ae67-5f7a45638e75","proto":"HTTP/1.1","method":"GET","status":200,"path":"/.well-known/openid-configuration","duration":0.077398,"bytes":1816,"time":"2022-06-14T11:25:50.358044988Z"}
idp | {"level":"debug","service":"idp","client_id":"xdXOt13JKxym1B1QcEncf2XDkLAexMBFwiT9j6EfhhHFJhs2KM9jbjTmf8JBXE69","known":true,"redirect_uri":"","trusted":false,"time":"2022-06-14T11:25:50.361526307Z","message":"identifier client lookup"}
idp | 2022/06/14 11:25:50 http: panic serving 172.19.0.3:48714: runtime error: invalid memory address or nil pointer dereference
idp | goroutine 343 [running]:
idp | net/http.(*conn).serve.func1()
idp | net/http/server.go:1825 +0xbf
idp | panic({0x313ba20, 0x497afa0})
idp | runtime/panic.go:844 +0x258
idp | go.opentelemetry.io/otel/sdk/trace.(*recordingSpan).End.func1()
idp | go.opentelemetry.io/otel/sdk@v1.7.0/trace/span.go:359 +0x2a
idp | go.opentelemetry.io/otel/sdk/trace.(*recordingSpan).End(0xc000abd080, {0x0, 0x0, 0x0?})
idp | go.opentelemetry.io/otel/sdk@v1.7.0/trace/span.go:398 +0x8dd
idp | panic({0x313ba20, 0x497afa0})
idp | runtime/panic.go:838 +0x207
idp | github.com/owncloud/ocis/v2/extensions/idp/pkg/backends/cs3/identifier.(*cs3Session).User(...)
idp | github.com/owncloud/ocis/v2/extensions/idp/pkg/backends/cs3/identifier/session.go:39
idp | github.com/owncloud/ocis/v2/extensions/idp/pkg/backends/cs3/identifier.(*CS3Backend).GetUser(0x0?, {0x353e1f0?, 0xc0018f6540?}, {0xc000add1d0?, 0x0?}, 0xc000072800?, 0x2?)
idp | github.com/owncloud/ocis/v2/extensions/idp/pkg/backends/cs3/identifier/cs3.go:138 +0x87
idp | github.com/libregraph/lico/identifier.(*Identifier).GetUserFromID(0xc00109f0e0, {0x353e1f0?, 0xc0018f6540?}, {0xc000add1d0?, 0x30?}, 0xc000ab3820, 0x415819?)
idp | github.com/libregraph/lico@v0.54.1-0.20220325072321-31efc3995d63/identifier/identifier.go:571 +0x65
idp | github.com/libregraph/lico/identity/managers.(*IdentifierIdentityManager).Fetch(0xc000269dc0, {0x353e1f0?, 0xc0018f6540?}, {0xc000add1d0?, 0xc000ae46c0?}, 0x40?, 0xc000af5950?, {0x0, 0x0, 0x0}, ...)
idp | github.com/libregraph/lico@v0.54.1-0.20220325072321-31efc3995d63/identity/managers/identifier.go:499 +0x5a
idp | github.com/libregraph/lico/oidc/provider.(*Provider).TokenHandler(0xc0001ffb00, {0x7fd2bc2511a0, 0xc001886d80?}, 0xc000af3b00)
idp | github.com/libregraph/lico@v0.54.1-0.20220325072321-31efc3995d63/oidc/provider/handlers.go:468 +0x1885
idp | github.com/rs/cors.(*Cors).ServeHTTP(0xc001894240, {0x7fd2bc2511a0, 0xc001886d80}, 0xc000af3b00, 0xc000adaf28)
idp | github.com/rs/cors@v1.8.2/cors.go:266 +0x17e
idp | github.com/libregraph/lico/oidc/provider.(*Provider).ServeHTTP(0xc0001ffb00, {0x7fd2bc2511a0, 0xc001886d80}, 0xc000af3b00)
idp | github.com/libregraph/lico@v0.54.1-0.20220325072321-31efc3995d63/oidc/provider/provider.go:434 +0x5a5
idp | github.com/gorilla/mux.(*Router).ServeHTTP(0xc000181380, {0x7fd2bc2511a0, 0xc001886d80}, 0xc000af3900)
idp | github.com/gorilla/mux@v1.8.0/mux.go:210 +0x1cf
idp | github.com/go-chi/chi/v5.(*Mux).Mount.func1({0x7fd2bc2511a0, 0xc001886d80}, 0xc000af3900)
idp | github.com/go-chi/chi/v5@v5.0.7/mux.go:314 +0x19c
idp | net/http.HandlerFunc.ServeHTTP(0x310b1e0?, {0x7fd2bc2511a0?, 0xc001886d80?}, 0xc000ae07e5?)
idp | net/http/server.go:2084 +0x2f
idp | github.com/go-chi/chi/v5.(*Mux).routeHTTP(0xc00107d4a0, {0x7fd2bc2511a0, 0xc001886d80}, 0xc000af3900)
idp | github.com/go-chi/chi/v5@v5.0.7/mux.go:442 +0x216
idp | net/http.HandlerFunc.ServeHTTP(0xc000abd080?, {0x7fd2bc2511a0?, 0xc001886d80?}, 0x2?)
idp | net/http/server.go:2084 +0x2f
idp | github.com/owncloud/ocis/v2/extensions/idp/pkg/middleware.Static.func1.1({0x7fd2bc2511a0, 0xc001886d80}, 0xc000af3800)
idp | github.com/owncloud/ocis/v2/extensions/idp/pkg/middleware/static.go:48 +0x772
idp | net/http.HandlerFunc.ServeHTTP(0x353bd48?, {0x7fd2bc2511a0?, 0xc001886d80?}, 0x310e0c0?)
idp | net/http/server.go:2084 +0x2f
idp | github.com/owncloud/ocis/v2/ocis-pkg/middleware.Logger.func1.1({0x353bd48, 0xc000ab0460}, 0xc000af3800)
idp | github.com/owncloud/ocis/v2/ocis-pkg/middleware/logger.go:17 +0xc8
idp | net/http.HandlerFunc.ServeHTTP(0x331d3a0?, {0x353bd48?, 0xc000ab0460?}, 0xd?)
idp | net/http/server.go:2084 +0x2f
idp | github.com/owncloud/ocis/v2/ocis-pkg/middleware.Version.func1.1({0x353bd48, 0xc000ab0460}, 0xc0018849a0?)
idp | github.com/owncloud/ocis/v2/ocis-pkg/middleware/version.go:18 +0x18f
idp | net/http.HandlerFunc.ServeHTTP(0x331d3a0?, {0x353bd48?, 0xc000ab0460?}, 0x16?)
idp | net/http/server.go:2084 +0x2f
idp | github.com/owncloud/ocis/v2/ocis-pkg/middleware.Secure.func1({0x353bd48, 0xc000ab0460}, 0xc000af3800)
idp | github.com/owncloud/ocis/v2/ocis-pkg/middleware/header.go:57 +0x31d
idp | net/http.HandlerFunc.ServeHTTP(0x331d3a0?, {0x353bd48?, 0xc000ab0460?}, 0xd?)
idp | net/http/server.go:2084 +0x2f
idp | github.com/owncloud/ocis/v2/ocis-pkg/middleware.NoCache.func1({0x353bd48, 0xc000ab0460}, 0xc00005a401?)
idp | github.com/owncloud/ocis/v2/ocis-pkg/middleware/header.go:20 +0x313
idp | net/http.HandlerFunc.ServeHTTP(0x90?, {0x353bd48?, 0xc000ab0460?}, 0x353d668?)
idp | net/http/server.go:2084 +0x2f
idp | github.com/owncloud/ocis/v2/ocis-pkg/middleware.TraceContext.func1({0x353bd48, 0xc000ab0460}, 0xc000af3700)
idp | github.com/owncloud/ocis/v2/ocis-pkg/middleware/tracing.go:19 +0x290
idp | net/http.HandlerFunc.ServeHTTP(0x353e1f0?, {0x353bd48?, 0xc000ab0460?}, 0x2d97a10?)
idp | net/http/server.go:2084 +0x2f
idp | github.com/go-chi/chi/v5/middleware.RequestID.func1({0x353bd48, 0xc000ab0460}, 0xc000af3600)
idp | github.com/go-chi/chi/v5@v5.0.7/middleware/request_id.go:76 +0x354
idp | net/http.HandlerFunc.ServeHTTP(0xc000af3600?, {0x353bd48?, 0xc000ab0460?}, 0xc000af55f0?)
idp | net/http/server.go:2084 +0x2f
idp | github.com/go-chi/chi/v5/middleware.RealIP.func1({0x353bd48, 0xc000ab0460}, 0xc000af3600)
idp | github.com/go-chi/chi/v5@v5.0.7/middleware/realip.go:35 +0x9e
idp | net/http.HandlerFunc.ServeHTTP(0x353e148?, {0x353bd48?, 0xc000ab0460?}, 0x4979b60?)
idp | net/http/server.go:2084 +0x2f
idp | github.com/go-chi/chi/v5.(*Mux).ServeHTTP(0xc00107d4a0, {0x353bd48, 0xc000ab0460}, 0xc001725c00)
idp | github.com/go-chi/chi/v5@v5.0.7/mux.go:88 +0x442
idp | github.com/owncloud/ocis/v2/extensions/idp/pkg/service/v0.IDP.ServeHTTP(...)
idp | github.com/owncloud/ocis/v2/extensions/idp/pkg/service/v0/service.go:244
idp | github.com/owncloud/ocis/v2/extensions/idp/pkg/service/v0.instrument.ServeHTTP(...)
idp | github.com/owncloud/ocis/v2/extensions/idp/pkg/service/v0/instrument.go:24
idp | github.com/owncloud/ocis/v2/extensions/idp/pkg/service/v0.loggingHandler.ServeHTTP(...)
idp | github.com/owncloud/ocis/v2/extensions/idp/pkg/service/v0/logging.go:24
idp | net/http.serverHandler.ServeHTTP({0x35303f0?}, {0x353bd48, 0xc000ab0460}, 0xc001725c00)
idp | net/http/server.go:2916 +0x43b
idp | net/http.(*conn).serve(0xc000af0320, {0x353e1f0, 0xc000a9e120})
idp | net/http/server.go:1966 +0x5d7
idp | created by net/http.(*Server).Serve
idp | net/http/server.go:3071 +0x4db
```

AFAICT the desktop client tried to bawe a request but the access token could not be verified... I think it has something to do with the session in the idp cs3 backend not surviving a restart.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.