Container Panic after v.2.0 #116

Closed
opened 2025-12-29 09:23:17 +01:00 by adam · 21 comments
Owner

Originally created by @gatesry on GitHub (Oct 26, 2025).

Hi! Thanks for the awesome project. Since v2.0, I can’t get the service to stay up. It panics during startup and the container restarts. If I leave the Docker provider section in config.yml blank/commented, the service starts fine. When it’s present (pointing at socket-proxy), I hit a panic.

godoxy-proxy container logs (startup)

10-26 16:40 INF GoDoxy version v0.20.1
10-26 16:40 INF icons loaded icons=4555
10-26 16:40 INF next cert renewal in 58 days, 20 hours and 36 minutes
10-26 16:40 INF certificate expire on 2026-01-24 13:16:29
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x28 pc=0x12ed511]
docker-compose.yml
services:
  socket-proxy:
    container_name: socket-proxy
    image: ghcr.io/yusing/socket-proxy:latest
    environment:
      - ALLOW_START=1
      - ALLOW_STOP=1
      - ALLOW_RESTARTS=1
      - CONTAINERS=1
      - EVENTS=1
      - INFO=1
      - PING=1
      - POST=1
      - VERSION=1
    volumes:
      - ${DOCKER_SOCKET:-/var/run/docker.sock}:/var/run/docker.sock
    restart: unless-stopped
    tmpfs:
      - /run
    ports:
      - ${SOCKET_PROXY_LISTEN_ADDR:-127.0.0.1:2375}:2375

  frontend:
    image: ghcr.io/yusing/godoxy-frontend:${TAG:-latest}
    container_name: godoxy-frontend
    restart: unless-stopped
    env_file: stack.env
    user: ${GODOXY_UID:-1000}:${GODOXY_GID:-1000}
    read_only: true
    tmpfs:
      - /app/.next/cache # next image caching
      # for lite variant, do not change uid/gid
      # - /var/cache/nginx:uid=101,gid=101
      # - /run:uid=101,gid=101
    security_opt:
      - no-new-privileges:true
    cap_drop:
      - all
    depends_on:
      - app
    labels:
      proxy.aliases: ${GODOXY_FRONTEND_ALIASES:-godoxy}
      # proxy.#1.middlewares.cidr_whitelist: |
      #   status: 403
      #   message: IP not allowed
      #   allow:
      #     - 127.0.0.1
      #     - 10.0.0.0/8
      #     - 192.168.0.0/16
      #     - 172.16.0.0/12

  app:
    image: ghcr.io/yusing/godoxy:${TAG:-latest}
    container_name: godoxy-proxy
    restart: always
    network_mode: host # do not change this
    env_file: stack.env
    user: ${GODOXY_UID:-1000}:${GODOXY_GID:-1000}
    depends_on:
      socket-proxy:
        condition: service_started
    # security_opt:
    #   - no-new-privileges:true
    cap_drop:
      - all
    cap_add:
      - NET_BIND_SERVICE
    environment:
      - DOCKER_HOST=tcp://${SOCKET_PROXY_LISTEN_ADDR:-127.0.0.1:2375}
    volumes:
      - /mnt/user/appdata/godoxy/config:/app/config
      - /mnt/user/appdata/godoxy/logs:/app/logs
      - /mnt/user/appdata/godoxy/error_pages:/app/error_pages:ro
      - /mnt/user/appdata/godoxy/data:/app/data
      # To use autocert, certs will be stored in "./certs".
      # You can also use a docker volume to store it
      - /mnt/user/appdata/godoxy/certs:/app/certs
      # remove "./certs:/app/certs" and uncomment below to use existing certificate
      # - /path/to/certs/cert.crt:/app/certs/cert.crt
      # - /path/to/certs/priv.key:/app/certs/priv.key
.env
env:
  TAG: "latest"
  TZ: "America"
  GODOXY_UID: 99
  GODOXY_GID: 100
  GODOXY_API_JWT_SECURE: true
  GODOXY_API_JWT_SECRET: "<REDACTED>"
  GODOXY_API_JWT_TOKEN_TTL: null
  GODOXY_API_USER: "admin"
  GODOXY_API_PASSWORD: "<REDACTED>"
  GODOXY_HTTP_ADDR: ":80"
  GODOXY_HTTPS_ADDR: ":443"
  GODOXY_HTTP3_ENABLED: true
  GODOXY_API_ADDR: "127.0.0.1:8888"
  GODOXY_METRICS_DISABLE_CPU: false
  GODOXY_METRICS_DISABLE_MEMORY: false
  GODOXY_METRICS_DISABLE_DISK: false
  GODOXY_METRICS_DISABLE_NETWORK: false
  GODOXY_METRICS_DISABLE_SENSORS: false
  GODOXY_FRONTEND_ALIASES: "godoxy"
  DOCKER_SOCKET: "/var/run/docker.sock"
  SOCKET_PROXY_LISTEN_ADDR: "127.0.0.1:2375"
  GODOXY_DEBUG: false
config.yml
autocert:
  provider: cloudflare
  email: "redacted@example.com"
  domains:
    - "*.example.com"
    - "example.com"
  options:
    auth_token: "<REDACTED_CLOUDFLARE_TOKEN>"

entrypoint:
  support_proxy_protocol: false
  middlewares:
    - use: CloudflareRealIP
    - use: ModifyResponse
      set_headers:
        Access-Control-Allow-Methods: GET, POST, PUT, PATCH, DELETE, OPTIONS, HEAD
        Access-Control-Allow-Headers: "*"
        Access-Control-Allow-Origin: "*"
        Access-Control-Max-Age: 180
        Vary: "*"
        X-XSS-Protection: 1; mode=block
        Content-Security-Policy: "object-src 'self'; frame-ancestors 'self';"
        X-Content-Type-Options: nosniff
        X-Frame-Options: SAMEORIGIN
        Referrer-Policy: same-origin
        Strict-Transport-Security: "max-age=63072000; includeSubDomains; preload"
  access_log:
    format: combined
    path: /app/logs/entrypoint.log
    stdout: false
    keep: 30 days

providers:
  docker:
    local: "$DOCKER_HOST"

homepage:
  use_default_categories: true

timeout_shutdown: 5
Originally created by @gatesry on GitHub (Oct 26, 2025). Hi! Thanks for the awesome project. Since v2.0, I can’t get the service to stay up. It panics during startup and the container restarts. If I leave the Docker provider section in config.yml blank/commented, the service starts fine. When it’s present (pointing at socket-proxy), I hit a panic. **godoxy-proxy container logs (startup)** ```text 10-26 16:40 INF GoDoxy version v0.20.1 10-26 16:40 INF icons loaded icons=4555 10-26 16:40 INF next cert renewal in 58 days, 20 hours and 36 minutes 10-26 16:40 INF certificate expire on 2026-01-24 13:16:29 panic: runtime error: invalid memory address or nil pointer dereference [signal SIGSEGV: segmentation violation code=0x1 addr=0x28 pc=0x12ed511] ``` <details> <summary>docker-compose.yml</summary> ```yaml services: socket-proxy: container_name: socket-proxy image: ghcr.io/yusing/socket-proxy:latest environment: - ALLOW_START=1 - ALLOW_STOP=1 - ALLOW_RESTARTS=1 - CONTAINERS=1 - EVENTS=1 - INFO=1 - PING=1 - POST=1 - VERSION=1 volumes: - ${DOCKER_SOCKET:-/var/run/docker.sock}:/var/run/docker.sock restart: unless-stopped tmpfs: - /run ports: - ${SOCKET_PROXY_LISTEN_ADDR:-127.0.0.1:2375}:2375 frontend: image: ghcr.io/yusing/godoxy-frontend:${TAG:-latest} container_name: godoxy-frontend restart: unless-stopped env_file: stack.env user: ${GODOXY_UID:-1000}:${GODOXY_GID:-1000} read_only: true tmpfs: - /app/.next/cache # next image caching # for lite variant, do not change uid/gid # - /var/cache/nginx:uid=101,gid=101 # - /run:uid=101,gid=101 security_opt: - no-new-privileges:true cap_drop: - all depends_on: - app labels: proxy.aliases: ${GODOXY_FRONTEND_ALIASES:-godoxy} # proxy.#1.middlewares.cidr_whitelist: | # status: 403 # message: IP not allowed # allow: # - 127.0.0.1 # - 10.0.0.0/8 # - 192.168.0.0/16 # - 172.16.0.0/12 app: image: ghcr.io/yusing/godoxy:${TAG:-latest} container_name: godoxy-proxy restart: always network_mode: host # do not change this env_file: stack.env user: ${GODOXY_UID:-1000}:${GODOXY_GID:-1000} depends_on: socket-proxy: condition: service_started # security_opt: # - no-new-privileges:true cap_drop: - all cap_add: - NET_BIND_SERVICE environment: - DOCKER_HOST=tcp://${SOCKET_PROXY_LISTEN_ADDR:-127.0.0.1:2375} volumes: - /mnt/user/appdata/godoxy/config:/app/config - /mnt/user/appdata/godoxy/logs:/app/logs - /mnt/user/appdata/godoxy/error_pages:/app/error_pages:ro - /mnt/user/appdata/godoxy/data:/app/data # To use autocert, certs will be stored in "./certs". # You can also use a docker volume to store it - /mnt/user/appdata/godoxy/certs:/app/certs # remove "./certs:/app/certs" and uncomment below to use existing certificate # - /path/to/certs/cert.crt:/app/certs/cert.crt # - /path/to/certs/priv.key:/app/certs/priv.key ``` </details> <details> <summary>.env </summary> ```yaml env: TAG: "latest" TZ: "America" GODOXY_UID: 99 GODOXY_GID: 100 GODOXY_API_JWT_SECURE: true GODOXY_API_JWT_SECRET: "<REDACTED>" GODOXY_API_JWT_TOKEN_TTL: null GODOXY_API_USER: "admin" GODOXY_API_PASSWORD: "<REDACTED>" GODOXY_HTTP_ADDR: ":80" GODOXY_HTTPS_ADDR: ":443" GODOXY_HTTP3_ENABLED: true GODOXY_API_ADDR: "127.0.0.1:8888" GODOXY_METRICS_DISABLE_CPU: false GODOXY_METRICS_DISABLE_MEMORY: false GODOXY_METRICS_DISABLE_DISK: false GODOXY_METRICS_DISABLE_NETWORK: false GODOXY_METRICS_DISABLE_SENSORS: false GODOXY_FRONTEND_ALIASES: "godoxy" DOCKER_SOCKET: "/var/run/docker.sock" SOCKET_PROXY_LISTEN_ADDR: "127.0.0.1:2375" GODOXY_DEBUG: false ``` </details> <details> <summary>config.yml </summary> ```yaml autocert: provider: cloudflare email: "redacted@example.com" domains: - "*.example.com" - "example.com" options: auth_token: "<REDACTED_CLOUDFLARE_TOKEN>" entrypoint: support_proxy_protocol: false middlewares: - use: CloudflareRealIP - use: ModifyResponse set_headers: Access-Control-Allow-Methods: GET, POST, PUT, PATCH, DELETE, OPTIONS, HEAD Access-Control-Allow-Headers: "*" Access-Control-Allow-Origin: "*" Access-Control-Max-Age: 180 Vary: "*" X-XSS-Protection: 1; mode=block Content-Security-Policy: "object-src 'self'; frame-ancestors 'self';" X-Content-Type-Options: nosniff X-Frame-Options: SAMEORIGIN Referrer-Policy: same-origin Strict-Transport-Security: "max-age=63072000; includeSubDomains; preload" access_log: format: combined path: /app/logs/entrypoint.log stdout: false keep: 30 days providers: docker: local: "$DOCKER_HOST" homepage: use_default_categories: true timeout_shutdown: 5 ``` </details>
adam closed this issue 2025-12-29 09:23:17 +01:00
Author
Owner

@starskyzheng commented on GitHub (Oct 26, 2025):

godoxy-proxy     | 10-27 01:25 DBG docker client initialized host=tcp://127.0.0.1:2375
godoxy-proxy     | panic: runtime error: invalid memory address or nil pointer dereference
godoxy-proxy     | [signal SIGSEGV: segmentation violation code=0x1 addr=0x28 pc=0x12ed3f1]
godoxy-proxy exited with code 2
godoxy-proxy     | 10-27 01:25 DBG loaded store namespace=captcha_sessions path=data/captcha_sessions.json
godoxy-proxy     | 10-27 01:25 DBG loaded store namespace=.homepage path=data/.homepage.json
@starskyzheng commented on GitHub (Oct 26, 2025): ``` godoxy-proxy | 10-27 01:25 DBG docker client initialized host=tcp://127.0.0.1:2375 godoxy-proxy | panic: runtime error: invalid memory address or nil pointer dereference godoxy-proxy | [signal SIGSEGV: segmentation violation code=0x1 addr=0x28 pc=0x12ed3f1] godoxy-proxy exited with code 2 godoxy-proxy | 10-27 01:25 DBG loaded store namespace=captcha_sessions path=data/captcha_sessions.json godoxy-proxy | 10-27 01:25 DBG loaded store namespace=.homepage path=data/.homepage.json ```
Author
Owner

@kgleeson commented on GitHub (Oct 27, 2025):

Same thing happening here

godoxy-backend  | 10-27 01:28 INF proxmox_nodes: added pve
godoxy-backend  | panic: runtime error: invalid memory address or nil pointer dereference
godoxy-backend  | [signal SIGSEGV: segmentation violation code=0x1 addr=0x28 pc=0x12ed3f1]
godoxy-backend exited with code 2
@kgleeson commented on GitHub (Oct 27, 2025): Same thing happening here ```godoxy-backend | 10-27 01:28 INF agent "NAS" initialized godoxy-backend | 10-27 01:28 INF proxmox_nodes: added pve godoxy-backend | panic: runtime error: invalid memory address or nil pointer dereference godoxy-backend | [signal SIGSEGV: segmentation violation code=0x1 addr=0x28 pc=0x12ed3f1] godoxy-backend exited with code 2
Author
Owner

@coffeespice commented on GitHub (Oct 27, 2025):

Same.

godoxy-proxy | 10-26 22:34 INF GoDoxy version v0.20.1
godoxy-proxy | 10-26 22:34 INF next cert renewal in 570 days, 16 hours and 43 minutes
godoxy-proxy | 10-26 22:34 INF certificate expire on 2027-06-20 18:18:33
godoxy-proxy | panic: runtime error: invalid memory address or nil pointer dereference
godoxy-proxy | [signal SIGSEGV: segmentation violation code=0x1 addr=0x28 pc=0x12ed511]

@coffeespice commented on GitHub (Oct 27, 2025): Same. > godoxy-proxy | 10-26 22:34 INF GoDoxy version v0.20.1 > godoxy-proxy | 10-26 22:34 INF next cert renewal in 570 days, 16 hours and 43 minutes > godoxy-proxy | 10-26 22:34 INF certificate expire on 2027-06-20 18:18:33 > godoxy-proxy | panic: runtime error: invalid memory address or nil pointer dereference > godoxy-proxy | [signal SIGSEGV: segmentation violation code=0x1 addr=0x28 pc=0x12ed511]
Author
Owner

@yusing commented on GitHub (Oct 27, 2025):

Checking now, will fix asap. Sorry for your inconvenience.

@yusing commented on GitHub (Oct 27, 2025): Checking now, will fix asap. Sorry for your inconvenience.
Author
Owner

@yusing commented on GitHub (Oct 27, 2025):

@kgleeson @starskyzheng @gatesry @coffeespice should be fixed, please update

@yusing commented on GitHub (Oct 27, 2025): @kgleeson @starskyzheng @gatesry @coffeespice should be fixed, please update
Author
Owner

@starskyzheng commented on GitHub (Oct 27, 2025):

It works. However, another panic:
I use oidc (keycloak)

local/go/src/net/http/h2_bundle.go:6320 +0x21f
godoxy-frontend  |  ✓ Ready in 730ms
godoxy-frontend  |  ✓ Ready in 730ms
godoxy-proxy     | 10-27 13:18 ??? ERROR http3: panic serving arg="runtime error: invalid memory address or nil pointer dereference" trace="goroutine 505 [running]:\ngithub.com/quic-go/quic-go/http3.(*Server).handleRequest.func2.1()\n\t/root/go/pkg/mod/github.com/quic-go/quic-go@v0.55.0/http3/server.go:642 +0xbd\npanic({0x1ae2220?, 0x3066050?})\n\t/usr/local/go/src/runtime/panic.go:783 +0x132\ngithub.com/yusing/godoxy/internal/auth.(*OIDCProvider).TryRefreshToken(0xc000503ef0, {0x2156ff0, 0xc0012c4fa0}, {0xc000936558?, 0x4?})\n\t/src/internal/auth/oauth_refresh.go:154 +0x156\ngithub.com/yusing/godoxy/internal/auth.(*OIDCProvider).LoginHandler(0xc000503ef0, {0x2153780, 0xc0004c9b00}, 0xc000c01680)\n\t/src/internal/auth/oidc.go:225 +0xdb\ngithub.com/yusing/godoxy/internal/auth.AuthOrProceed({0x2153780, 0xc0004c9b00}, 0xc000c01680)\n\t/src/internal/auth/auth.go:65 +0x5c\ngithub.com/yusing/godoxy/internal/route/rules.init.func49.1({0x2153780?, 0xc0004c9b00?}, 0x80?)\n\t/src/internal/route/rules/do.go:73 +0x25\ngithub.com/yusing/godoxy/internal/route/rules.NonTerminatingCommand.Handle(0x41c91b?, {0x2153780?, 0xc0004c9b00?}, 0x80?)\n\t/src/internal/route/rules/command.go:29 +0x29\ngithub.com/yusing/godoxy/internal/route/rules.Commands.Handle(...)\n\t/src/internal/route/rules/command.go:65\ngithub.com/yusing/godoxy/internal/route/rules.(*Rule).Handle(...)\n\t/src/internal/route/rules/rules.go:253\ngithub.com/yusing/godoxy/internal/route/rules.Rules.BuildHandler.func3({0x2153150, 0xc0006deb90}, 0xc000c01680)\n\t/src/internal/route/rules/rules.go:161 +0xb94\nnet/http.HandlerFunc.ServeHTTP(0xc0006deb90?, {0x2153150?, 0xc0006deb90?}, 0x12df7c2?)\n\t/usr/local/go/src/net/http/server.go:2322 +0x29\ngithub.com/yusing/godoxy/internal/route.(*ReveseProxyRoute).ServeHTTP(0xc0006deb90?, {0x2153150?, 0xc0006deb90?}, 0xc00098d370?)\n\t/src/internal/route/reverse_proxy.go:156 +0x26\ngithub.com/yusing/godoxy/internal/net/gphttp/middleware.(*Middleware).ServeHTTP(0xc000a233b0, 0xc001146b00, {0x2153a50, 0xc00037b900}, 0xc000c01680)\n\t/src/internal/net/gphttp/middleware/middleware.go:191 +0x183\ngithub.com/yusing/godoxy/internal/entrypoint.(*Entrypoint).ServeHTTP(0xc00034cab8, {0x2153ce0?, 0xc0004c9a80?}, 0xc000c01680)\n\t/src/internal/entrypoint/entrypoint.go:103 +0x269\ngithub.com/quic-go/quic-go/http3.(*Server).handleRequest.func2(0x2156d60?, 0xc00017c8c0?, {0x2142020?, 0xc00034cab8?}, 0xc0001930b0?, 0x16?)\n\t/root/go/pkg/mod/github.com/quic-go/quic-go@v0.55.0/http3/server.go:650 +0x5f\ngithub.com/quic-go/quic-go/http3.(*Server).handleRequest(0xc0006f4300, 0xc0004c8100, {0x216fd60, 0xc0010d91f0}, 0xc00098e660)\n\t/root/go/pkg/mod/github.com/quic-go/quic-go@v0.55.0/http3/server.go:651 +0xcba\ngithub.com/quic-go/quic-go/http3.(*Server).handleConn.func2()\n\t/root/go/pkg/mod/github.com/quic-go/quic-go@v0.55.0/http3/server.go:538 +0x5a\ncreated by github.com/quic-go/quic-go/http3.(*Server).handleConn in goroutine 365\n\t/root/go/pkg/mod/github.com/quic-go/quic-go@v0.55.0/http3/server.go:534 +0x426\n"
godoxy-proxy     | 10-27 13:18 ??? http2: panic serving 100.119.165.64:53125: runtime error: invalid memory address or nil pointer dereference
godoxy-proxy     |                 goroutine 485 [running]:
godoxy-proxy     |                 net/http.(*http2serverConn).runHandler.func1()
godoxy-proxy     |                      /usr/local/go/src/net/http/h2_bundle.go:6379 +0x145
godoxy-proxy     |                 panic({0x1ae2220?, 0x3066050?})
godoxy-proxy     |                      /usr/local/go/src/runtime/panic.go:783 +0x132
godoxy-proxy     |                 github.com/yusing/godoxy/internal/auth.(*OIDCProvider).TryRefreshToken(0xc000503ef0, {0x2156ff0, 0xc00136df60}, {0xc000b0a558?, 0x4?})
godoxy-proxy     |                      /src/internal/auth/oauth_refresh.go:154 +0x156
godoxy-proxy     |                 github.com/yusing/godoxy/internal/auth.(*OIDCProvider).LoginHandler(0xc000503ef0, {0x2153780, 0xc00114c580}, 0xc0003f37c0)
godoxy-proxy     |                      /src/internal/auth/oidc.go:225 +0xdb
godoxy-proxy     |                 github.com/yusing/godoxy/internal/auth.AuthOrProceed({0x2153780, 0xc00114c580}, 0xc0003f37c0)
godoxy-proxy     |                      /src/internal/auth/auth.go:65 +0x5c
godoxy-proxy     |                 github.com/yusing/godoxy/internal/route/rules.init.func49.1({0x2153780?, 0xc00114c580?}, 0x80?)
godoxy-proxy     |                      /src/internal/route/rules/do.go:73 +0x25
godoxy-proxy     |                 github.com/yusing/godoxy/internal/route/rules.NonTerminatingCommand.Handle(0x41c91b?, {0x2153780?, 0xc00114c580?}, 0x80?)
godoxy-proxy     |                      /src/internal/route/rules/command.go:29 +0x29
godoxy-proxy     |                 github.com/yusing/godoxy/internal/route/rules.Commands.Handle(...)
godoxy-proxy     |                      /src/internal/route/rules/command.go:65
godoxy-proxy     |                 github.com/yusing/godoxy/internal/route/rules.(*Rule).Handle(...)
godoxy-proxy     |                      /src/internal/route/rules/rules.go:253
godoxy-proxy     |                 github.com/yusing/godoxy/internal/route/rules.Rules.BuildHandler.func3({0x2153150, 0xc00017c9b0}, 0xc0003f37c0)
godoxy-proxy     |                      /src/internal/route/rules/rules.go:161 +0xb94
godoxy-proxy     |                 net/http.HandlerFunc.ServeHTTP(0xc00017c9b0?, {0x2153150?, 0xc00017c9b0?}, 0x12df7c2?)
godoxy-proxy     |                      /usr/local/go/src/net/http/server.go:2322 +0x29
godoxy-proxy     |                 github.com/yusing/godoxy/internal/route.(*ReveseProxyRoute).ServeHTTP(0xc00017c9b0?, {0x2153150?, 0xc00017c9b0?}, 0xc00098d370?)
godoxy-proxy     |                      /src/internal/route/reverse_proxy.go:156 +0x26
godoxy-proxy     |                 github.com/yusing/godoxy/internal/net/gphttp/middleware.(*Middleware).ServeHTTP(0xc000a233b0, 0xc0001eac10, {0x2153a50, 0xc0000fa640}, 0xc0003f37c0)
godoxy-proxy     |                      /src/internal/net/gphttp/middleware/middleware.go:191 +0x183
godoxy-proxy     |                 github.com/yusing/godoxy/internal/entrypoint.(*Entrypoint).ServeHTTP(0xc00034cab8, {0x2153690?, 0xc00019e508?}, 0xc0003f37c0)
godoxy-proxy     |                      /src/internal/entrypoint/entrypoint.go:103 +0x269
godoxy-proxy     |                 github.com/yusing/goutils/server.(*Server).Start.advertiseHTTP3.func6({0x2153690?, 0xc00019e508?}, 0xc0003f37c0?)
godoxy-proxy     |                      /src/goutils/server/utils.go:37 +0x95
godoxy-proxy     |                 net/http.HandlerFunc.ServeHTTP(0x0?, {0x2153690?, 0xc00019e508?}, 0x0?)
godoxy-proxy     |                      /usr/local/go/src/net/http/server.go:2322 +0x29
godoxy-proxy     |                 net/http.serverHandler.ServeHTTP({0x7570ad?}, {0x2153690?, 0xc00019e508?}, 0x0?)
godoxy-proxy     |                      /usr/local/go/src/net/http/server.go:3340 +0x8e
godoxy-proxy     |                 net/http.initALPNRequest.ServeHTTP({{0x2156d28?, 0xc001266ea0?}, 0xc0010fe388?, {0xc0006f4200?}}, {0x2153690, 0xc00019e508}, 0xc0003f37c0)
godoxy-proxy     |                      /usr/local/go/src/net/http/server.go:4013 +0x231
godoxy-proxy     |                 net/http.(*http2serverConn).runHandler(0x75d2c8?, 0xc000834000?, 0x2156d28?, 0xc0005a48a0?)
godoxy-proxy     |                      /usr/local/go/src/net/http/h2_bundle.go:6386 +0xf0
godoxy-proxy     |                 created by net/http.(*http2serverConn).scheduleHandler in goroutine 445
godoxy-proxy     |                      /usr/local/go/src/net/http/h2_bundle.go:6320 +0x21f
@starskyzheng commented on GitHub (Oct 27, 2025): It works. However, another panic: I use oidc (keycloak) ``` local/go/src/net/http/h2_bundle.go:6320 +0x21f godoxy-frontend | ✓ Ready in 730ms godoxy-frontend | ✓ Ready in 730ms godoxy-proxy | 10-27 13:18 ??? ERROR http3: panic serving arg="runtime error: invalid memory address or nil pointer dereference" trace="goroutine 505 [running]:\ngithub.com/quic-go/quic-go/http3.(*Server).handleRequest.func2.1()\n\t/root/go/pkg/mod/github.com/quic-go/quic-go@v0.55.0/http3/server.go:642 +0xbd\npanic({0x1ae2220?, 0x3066050?})\n\t/usr/local/go/src/runtime/panic.go:783 +0x132\ngithub.com/yusing/godoxy/internal/auth.(*OIDCProvider).TryRefreshToken(0xc000503ef0, {0x2156ff0, 0xc0012c4fa0}, {0xc000936558?, 0x4?})\n\t/src/internal/auth/oauth_refresh.go:154 +0x156\ngithub.com/yusing/godoxy/internal/auth.(*OIDCProvider).LoginHandler(0xc000503ef0, {0x2153780, 0xc0004c9b00}, 0xc000c01680)\n\t/src/internal/auth/oidc.go:225 +0xdb\ngithub.com/yusing/godoxy/internal/auth.AuthOrProceed({0x2153780, 0xc0004c9b00}, 0xc000c01680)\n\t/src/internal/auth/auth.go:65 +0x5c\ngithub.com/yusing/godoxy/internal/route/rules.init.func49.1({0x2153780?, 0xc0004c9b00?}, 0x80?)\n\t/src/internal/route/rules/do.go:73 +0x25\ngithub.com/yusing/godoxy/internal/route/rules.NonTerminatingCommand.Handle(0x41c91b?, {0x2153780?, 0xc0004c9b00?}, 0x80?)\n\t/src/internal/route/rules/command.go:29 +0x29\ngithub.com/yusing/godoxy/internal/route/rules.Commands.Handle(...)\n\t/src/internal/route/rules/command.go:65\ngithub.com/yusing/godoxy/internal/route/rules.(*Rule).Handle(...)\n\t/src/internal/route/rules/rules.go:253\ngithub.com/yusing/godoxy/internal/route/rules.Rules.BuildHandler.func3({0x2153150, 0xc0006deb90}, 0xc000c01680)\n\t/src/internal/route/rules/rules.go:161 +0xb94\nnet/http.HandlerFunc.ServeHTTP(0xc0006deb90?, {0x2153150?, 0xc0006deb90?}, 0x12df7c2?)\n\t/usr/local/go/src/net/http/server.go:2322 +0x29\ngithub.com/yusing/godoxy/internal/route.(*ReveseProxyRoute).ServeHTTP(0xc0006deb90?, {0x2153150?, 0xc0006deb90?}, 0xc00098d370?)\n\t/src/internal/route/reverse_proxy.go:156 +0x26\ngithub.com/yusing/godoxy/internal/net/gphttp/middleware.(*Middleware).ServeHTTP(0xc000a233b0, 0xc001146b00, {0x2153a50, 0xc00037b900}, 0xc000c01680)\n\t/src/internal/net/gphttp/middleware/middleware.go:191 +0x183\ngithub.com/yusing/godoxy/internal/entrypoint.(*Entrypoint).ServeHTTP(0xc00034cab8, {0x2153ce0?, 0xc0004c9a80?}, 0xc000c01680)\n\t/src/internal/entrypoint/entrypoint.go:103 +0x269\ngithub.com/quic-go/quic-go/http3.(*Server).handleRequest.func2(0x2156d60?, 0xc00017c8c0?, {0x2142020?, 0xc00034cab8?}, 0xc0001930b0?, 0x16?)\n\t/root/go/pkg/mod/github.com/quic-go/quic-go@v0.55.0/http3/server.go:650 +0x5f\ngithub.com/quic-go/quic-go/http3.(*Server).handleRequest(0xc0006f4300, 0xc0004c8100, {0x216fd60, 0xc0010d91f0}, 0xc00098e660)\n\t/root/go/pkg/mod/github.com/quic-go/quic-go@v0.55.0/http3/server.go:651 +0xcba\ngithub.com/quic-go/quic-go/http3.(*Server).handleConn.func2()\n\t/root/go/pkg/mod/github.com/quic-go/quic-go@v0.55.0/http3/server.go:538 +0x5a\ncreated by github.com/quic-go/quic-go/http3.(*Server).handleConn in goroutine 365\n\t/root/go/pkg/mod/github.com/quic-go/quic-go@v0.55.0/http3/server.go:534 +0x426\n" godoxy-proxy | 10-27 13:18 ??? http2: panic serving 100.119.165.64:53125: runtime error: invalid memory address or nil pointer dereference godoxy-proxy | goroutine 485 [running]: godoxy-proxy | net/http.(*http2serverConn).runHandler.func1() godoxy-proxy | /usr/local/go/src/net/http/h2_bundle.go:6379 +0x145 godoxy-proxy | panic({0x1ae2220?, 0x3066050?}) godoxy-proxy | /usr/local/go/src/runtime/panic.go:783 +0x132 godoxy-proxy | github.com/yusing/godoxy/internal/auth.(*OIDCProvider).TryRefreshToken(0xc000503ef0, {0x2156ff0, 0xc00136df60}, {0xc000b0a558?, 0x4?}) godoxy-proxy | /src/internal/auth/oauth_refresh.go:154 +0x156 godoxy-proxy | github.com/yusing/godoxy/internal/auth.(*OIDCProvider).LoginHandler(0xc000503ef0, {0x2153780, 0xc00114c580}, 0xc0003f37c0) godoxy-proxy | /src/internal/auth/oidc.go:225 +0xdb godoxy-proxy | github.com/yusing/godoxy/internal/auth.AuthOrProceed({0x2153780, 0xc00114c580}, 0xc0003f37c0) godoxy-proxy | /src/internal/auth/auth.go:65 +0x5c godoxy-proxy | github.com/yusing/godoxy/internal/route/rules.init.func49.1({0x2153780?, 0xc00114c580?}, 0x80?) godoxy-proxy | /src/internal/route/rules/do.go:73 +0x25 godoxy-proxy | github.com/yusing/godoxy/internal/route/rules.NonTerminatingCommand.Handle(0x41c91b?, {0x2153780?, 0xc00114c580?}, 0x80?) godoxy-proxy | /src/internal/route/rules/command.go:29 +0x29 godoxy-proxy | github.com/yusing/godoxy/internal/route/rules.Commands.Handle(...) godoxy-proxy | /src/internal/route/rules/command.go:65 godoxy-proxy | github.com/yusing/godoxy/internal/route/rules.(*Rule).Handle(...) godoxy-proxy | /src/internal/route/rules/rules.go:253 godoxy-proxy | github.com/yusing/godoxy/internal/route/rules.Rules.BuildHandler.func3({0x2153150, 0xc00017c9b0}, 0xc0003f37c0) godoxy-proxy | /src/internal/route/rules/rules.go:161 +0xb94 godoxy-proxy | net/http.HandlerFunc.ServeHTTP(0xc00017c9b0?, {0x2153150?, 0xc00017c9b0?}, 0x12df7c2?) godoxy-proxy | /usr/local/go/src/net/http/server.go:2322 +0x29 godoxy-proxy | github.com/yusing/godoxy/internal/route.(*ReveseProxyRoute).ServeHTTP(0xc00017c9b0?, {0x2153150?, 0xc00017c9b0?}, 0xc00098d370?) godoxy-proxy | /src/internal/route/reverse_proxy.go:156 +0x26 godoxy-proxy | github.com/yusing/godoxy/internal/net/gphttp/middleware.(*Middleware).ServeHTTP(0xc000a233b0, 0xc0001eac10, {0x2153a50, 0xc0000fa640}, 0xc0003f37c0) godoxy-proxy | /src/internal/net/gphttp/middleware/middleware.go:191 +0x183 godoxy-proxy | github.com/yusing/godoxy/internal/entrypoint.(*Entrypoint).ServeHTTP(0xc00034cab8, {0x2153690?, 0xc00019e508?}, 0xc0003f37c0) godoxy-proxy | /src/internal/entrypoint/entrypoint.go:103 +0x269 godoxy-proxy | github.com/yusing/goutils/server.(*Server).Start.advertiseHTTP3.func6({0x2153690?, 0xc00019e508?}, 0xc0003f37c0?) godoxy-proxy | /src/goutils/server/utils.go:37 +0x95 godoxy-proxy | net/http.HandlerFunc.ServeHTTP(0x0?, {0x2153690?, 0xc00019e508?}, 0x0?) godoxy-proxy | /usr/local/go/src/net/http/server.go:2322 +0x29 godoxy-proxy | net/http.serverHandler.ServeHTTP({0x7570ad?}, {0x2153690?, 0xc00019e508?}, 0x0?) godoxy-proxy | /usr/local/go/src/net/http/server.go:3340 +0x8e godoxy-proxy | net/http.initALPNRequest.ServeHTTP({{0x2156d28?, 0xc001266ea0?}, 0xc0010fe388?, {0xc0006f4200?}}, {0x2153690, 0xc00019e508}, 0xc0003f37c0) godoxy-proxy | /usr/local/go/src/net/http/server.go:4013 +0x231 godoxy-proxy | net/http.(*http2serverConn).runHandler(0x75d2c8?, 0xc000834000?, 0x2156d28?, 0xc0005a48a0?) godoxy-proxy | /usr/local/go/src/net/http/h2_bundle.go:6386 +0xf0 godoxy-proxy | created by net/http.(*http2serverConn).scheduleHandler in goroutine 445 godoxy-proxy | /usr/local/go/src/net/http/h2_bundle.go:6320 +0x21f ```
Author
Owner

@yusing commented on GitHub (Oct 27, 2025):

It works. However, another panic:
I use oidc (keycloak)

local/go/src/net/http/h2_bundle.go:6320 +0x21f
godoxy-frontend  |  ✓ Ready in 730ms
godoxy-frontend  |  ✓ Ready in 730ms
godoxy-proxy     | 10-27 13:18 ??? ERROR http3: panic serving arg="runtime error: invalid memory address or nil pointer dereference" trace="goroutine 505 [running]:\ngithub.com/quic-go/quic-go/http3.(*Server).handleRequest.func2.1()\n\t/root/go/pkg/mod/github.com/quic-go/quic-go@v0.55.0/http3/server.go:642 +0xbd\npanic({0x1ae2220?, 0x3066050?})\n\t/usr/local/go/src/runtime/panic.go:783 +0x132\ngithub.com/yusing/godoxy/internal/auth.(*OIDCProvider).TryRefreshToken(0xc000503ef0, {0x2156ff0, 0xc0012c4fa0}, {0xc000936558?, 0x4?})\n\t/src/internal/auth/oauth_refresh.go:154 +0x156\ngithub.com/yusing/godoxy/internal/auth.(*OIDCProvider).LoginHandler(0xc000503ef0, {0x2153780, 0xc0004c9b00}, 0xc000c01680)\n\t/src/internal/auth/oidc.go:225 +0xdb\ngithub.com/yusing/godoxy/internal/auth.AuthOrProceed({0x2153780, 0xc0004c9b00}, 0xc000c01680)\n\t/src/internal/auth/auth.go:65 +0x5c\ngithub.com/yusing/godoxy/internal/route/rules.init.func49.1({0x2153780?, 0xc0004c9b00?}, 0x80?)\n\t/src/internal/route/rules/do.go:73 +0x25\ngithub.com/yusing/godoxy/internal/route/rules.NonTerminatingCommand.Handle(0x41c91b?, {0x2153780?, 0xc0004c9b00?}, 0x80?)\n\t/src/internal/route/rules/command.go:29 +0x29\ngithub.com/yusing/godoxy/internal/route/rules.Commands.Handle(...)\n\t/src/internal/route/rules/command.go:65\ngithub.com/yusing/godoxy/internal/route/rules.(*Rule).Handle(...)\n\t/src/internal/route/rules/rules.go:253\ngithub.com/yusing/godoxy/internal/route/rules.Rules.BuildHandler.func3({0x2153150, 0xc0006deb90}, 0xc000c01680)\n\t/src/internal/route/rules/rules.go:161 +0xb94\nnet/http.HandlerFunc.ServeHTTP(0xc0006deb90?, {0x2153150?, 0xc0006deb90?}, 0x12df7c2?)\n\t/usr/local/go/src/net/http/server.go:2322 +0x29\ngithub.com/yusing/godoxy/internal/route.(*ReveseProxyRoute).ServeHTTP(0xc0006deb90?, {0x2153150?, 0xc0006deb90?}, 0xc00098d370?)\n\t/src/internal/route/reverse_proxy.go:156 +0x26\ngithub.com/yusing/godoxy/internal/net/gphttp/middleware.(*Middleware).ServeHTTP(0xc000a233b0, 0xc001146b00, {0x2153a50, 0xc00037b900}, 0xc000c01680)\n\t/src/internal/net/gphttp/middleware/middleware.go:191 +0x183\ngithub.com/yusing/godoxy/internal/entrypoint.(*Entrypoint).ServeHTTP(0xc00034cab8, {0x2153ce0?, 0xc0004c9a80?}, 0xc000c01680)\n\t/src/internal/entrypoint/entrypoint.go:103 +0x269\ngithub.com/quic-go/quic-go/http3.(*Server).handleRequest.func2(0x2156d60?, 0xc00017c8c0?, {0x2142020?, 0xc00034cab8?}, 0xc0001930b0?, 0x16?)\n\t/root/go/pkg/mod/github.com/quic-go/quic-go@v0.55.0/http3/server.go:650 +0x5f\ngithub.com/quic-go/quic-go/http3.(*Server).handleRequest(0xc0006f4300, 0xc0004c8100, {0x216fd60, 0xc0010d91f0}, 0xc00098e660)\n\t/root/go/pkg/mod/github.com/quic-go/quic-go@v0.55.0/http3/server.go:651 +0xcba\ngithub.com/quic-go/quic-go/http3.(*Server).handleConn.func2()\n\t/root/go/pkg/mod/github.com/quic-go/quic-go@v0.55.0/http3/server.go:538 +0x5a\ncreated by github.com/quic-go/quic-go/http3.(*Server).handleConn in goroutine 365\n\t/root/go/pkg/mod/github.com/quic-go/quic-go@v0.55.0/http3/server.go:534 +0x426\n"
godoxy-proxy     | 10-27 13:18 ??? http2: panic serving 100.119.165.64:53125: runtime error: invalid memory address or nil pointer dereference
godoxy-proxy     |                 goroutine 485 [running]:
godoxy-proxy     |                 net/http.(*http2serverConn).runHandler.func1()
godoxy-proxy     |                      /usr/local/go/src/net/http/h2_bundle.go:6379 +0x145
godoxy-proxy     |                 panic({0x1ae2220?, 0x3066050?})
godoxy-proxy     |                      /usr/local/go/src/runtime/panic.go:783 +0x132
godoxy-proxy     |                 github.com/yusing/godoxy/internal/auth.(*OIDCProvider).TryRefreshToken(0xc000503ef0, {0x2156ff0, 0xc00136df60}, {0xc000b0a558?, 0x4?})
godoxy-proxy     |                      /src/internal/auth/oauth_refresh.go:154 +0x156
godoxy-proxy     |                 github.com/yusing/godoxy/internal/auth.(*OIDCProvider).LoginHandler(0xc000503ef0, {0x2153780, 0xc00114c580}, 0xc0003f37c0)
godoxy-proxy     |                      /src/internal/auth/oidc.go:225 +0xdb
godoxy-proxy     |                 github.com/yusing/godoxy/internal/auth.AuthOrProceed({0x2153780, 0xc00114c580}, 0xc0003f37c0)
godoxy-proxy     |                      /src/internal/auth/auth.go:65 +0x5c
godoxy-proxy     |                 github.com/yusing/godoxy/internal/route/rules.init.func49.1({0x2153780?, 0xc00114c580?}, 0x80?)
godoxy-proxy     |                      /src/internal/route/rules/do.go:73 +0x25
godoxy-proxy     |                 github.com/yusing/godoxy/internal/route/rules.NonTerminatingCommand.Handle(0x41c91b?, {0x2153780?, 0xc00114c580?}, 0x80?)
godoxy-proxy     |                      /src/internal/route/rules/command.go:29 +0x29
godoxy-proxy     |                 github.com/yusing/godoxy/internal/route/rules.Commands.Handle(...)
godoxy-proxy     |                      /src/internal/route/rules/command.go:65
godoxy-proxy     |                 github.com/yusing/godoxy/internal/route/rules.(*Rule).Handle(...)
godoxy-proxy     |                      /src/internal/route/rules/rules.go:253
godoxy-proxy     |                 github.com/yusing/godoxy/internal/route/rules.Rules.BuildHandler.func3({0x2153150, 0xc00017c9b0}, 0xc0003f37c0)
godoxy-proxy     |                      /src/internal/route/rules/rules.go:161 +0xb94
godoxy-proxy     |                 net/http.HandlerFunc.ServeHTTP(0xc00017c9b0?, {0x2153150?, 0xc00017c9b0?}, 0x12df7c2?)
godoxy-proxy     |                      /usr/local/go/src/net/http/server.go:2322 +0x29
godoxy-proxy     |                 github.com/yusing/godoxy/internal/route.(*ReveseProxyRoute).ServeHTTP(0xc00017c9b0?, {0x2153150?, 0xc00017c9b0?}, 0xc00098d370?)
godoxy-proxy     |                      /src/internal/route/reverse_proxy.go:156 +0x26
godoxy-proxy     |                 github.com/yusing/godoxy/internal/net/gphttp/middleware.(*Middleware).ServeHTTP(0xc000a233b0, 0xc0001eac10, {0x2153a50, 0xc0000fa640}, 0xc0003f37c0)
godoxy-proxy     |                      /src/internal/net/gphttp/middleware/middleware.go:191 +0x183
godoxy-proxy     |                 github.com/yusing/godoxy/internal/entrypoint.(*Entrypoint).ServeHTTP(0xc00034cab8, {0x2153690?, 0xc00019e508?}, 0xc0003f37c0)
godoxy-proxy     |                      /src/internal/entrypoint/entrypoint.go:103 +0x269
godoxy-proxy     |                 github.com/yusing/goutils/server.(*Server).Start.advertiseHTTP3.func6({0x2153690?, 0xc00019e508?}, 0xc0003f37c0?)
godoxy-proxy     |                      /src/goutils/server/utils.go:37 +0x95
godoxy-proxy     |                 net/http.HandlerFunc.ServeHTTP(0x0?, {0x2153690?, 0xc00019e508?}, 0x0?)
godoxy-proxy     |                      /usr/local/go/src/net/http/server.go:2322 +0x29
godoxy-proxy     |                 net/http.serverHandler.ServeHTTP({0x7570ad?}, {0x2153690?, 0xc00019e508?}, 0x0?)
godoxy-proxy     |                      /usr/local/go/src/net/http/server.go:3340 +0x8e
godoxy-proxy     |                 net/http.initALPNRequest.ServeHTTP({{0x2156d28?, 0xc001266ea0?}, 0xc0010fe388?, {0xc0006f4200?}}, {0x2153690, 0xc00019e508}, 0xc0003f37c0)
godoxy-proxy     |                      /usr/local/go/src/net/http/server.go:4013 +0x231
godoxy-proxy     |                 net/http.(*http2serverConn).runHandler(0x75d2c8?, 0xc000834000?, 0x2156d28?, 0xc0005a48a0?)
godoxy-proxy     |                      /usr/local/go/src/net/http/h2_bundle.go:6386 +0xf0
godoxy-proxy     |                 created by net/http.(*http2serverConn).scheduleHandler in goroutine 445
godoxy-proxy     |                      /usr/local/go/src/net/http/h2_bundle.go:6320 +0x21f

Ok, will check that later

@yusing commented on GitHub (Oct 27, 2025): > It works. However, another panic: > I use oidc (keycloak) > ``` > local/go/src/net/http/h2_bundle.go:6320 +0x21f > godoxy-frontend | ✓ Ready in 730ms > godoxy-frontend | ✓ Ready in 730ms > godoxy-proxy | 10-27 13:18 ??? ERROR http3: panic serving arg="runtime error: invalid memory address or nil pointer dereference" trace="goroutine 505 [running]:\ngithub.com/quic-go/quic-go/http3.(*Server).handleRequest.func2.1()\n\t/root/go/pkg/mod/github.com/quic-go/quic-go@v0.55.0/http3/server.go:642 +0xbd\npanic({0x1ae2220?, 0x3066050?})\n\t/usr/local/go/src/runtime/panic.go:783 +0x132\ngithub.com/yusing/godoxy/internal/auth.(*OIDCProvider).TryRefreshToken(0xc000503ef0, {0x2156ff0, 0xc0012c4fa0}, {0xc000936558?, 0x4?})\n\t/src/internal/auth/oauth_refresh.go:154 +0x156\ngithub.com/yusing/godoxy/internal/auth.(*OIDCProvider).LoginHandler(0xc000503ef0, {0x2153780, 0xc0004c9b00}, 0xc000c01680)\n\t/src/internal/auth/oidc.go:225 +0xdb\ngithub.com/yusing/godoxy/internal/auth.AuthOrProceed({0x2153780, 0xc0004c9b00}, 0xc000c01680)\n\t/src/internal/auth/auth.go:65 +0x5c\ngithub.com/yusing/godoxy/internal/route/rules.init.func49.1({0x2153780?, 0xc0004c9b00?}, 0x80?)\n\t/src/internal/route/rules/do.go:73 +0x25\ngithub.com/yusing/godoxy/internal/route/rules.NonTerminatingCommand.Handle(0x41c91b?, {0x2153780?, 0xc0004c9b00?}, 0x80?)\n\t/src/internal/route/rules/command.go:29 +0x29\ngithub.com/yusing/godoxy/internal/route/rules.Commands.Handle(...)\n\t/src/internal/route/rules/command.go:65\ngithub.com/yusing/godoxy/internal/route/rules.(*Rule).Handle(...)\n\t/src/internal/route/rules/rules.go:253\ngithub.com/yusing/godoxy/internal/route/rules.Rules.BuildHandler.func3({0x2153150, 0xc0006deb90}, 0xc000c01680)\n\t/src/internal/route/rules/rules.go:161 +0xb94\nnet/http.HandlerFunc.ServeHTTP(0xc0006deb90?, {0x2153150?, 0xc0006deb90?}, 0x12df7c2?)\n\t/usr/local/go/src/net/http/server.go:2322 +0x29\ngithub.com/yusing/godoxy/internal/route.(*ReveseProxyRoute).ServeHTTP(0xc0006deb90?, {0x2153150?, 0xc0006deb90?}, 0xc00098d370?)\n\t/src/internal/route/reverse_proxy.go:156 +0x26\ngithub.com/yusing/godoxy/internal/net/gphttp/middleware.(*Middleware).ServeHTTP(0xc000a233b0, 0xc001146b00, {0x2153a50, 0xc00037b900}, 0xc000c01680)\n\t/src/internal/net/gphttp/middleware/middleware.go:191 +0x183\ngithub.com/yusing/godoxy/internal/entrypoint.(*Entrypoint).ServeHTTP(0xc00034cab8, {0x2153ce0?, 0xc0004c9a80?}, 0xc000c01680)\n\t/src/internal/entrypoint/entrypoint.go:103 +0x269\ngithub.com/quic-go/quic-go/http3.(*Server).handleRequest.func2(0x2156d60?, 0xc00017c8c0?, {0x2142020?, 0xc00034cab8?}, 0xc0001930b0?, 0x16?)\n\t/root/go/pkg/mod/github.com/quic-go/quic-go@v0.55.0/http3/server.go:650 +0x5f\ngithub.com/quic-go/quic-go/http3.(*Server).handleRequest(0xc0006f4300, 0xc0004c8100, {0x216fd60, 0xc0010d91f0}, 0xc00098e660)\n\t/root/go/pkg/mod/github.com/quic-go/quic-go@v0.55.0/http3/server.go:651 +0xcba\ngithub.com/quic-go/quic-go/http3.(*Server).handleConn.func2()\n\t/root/go/pkg/mod/github.com/quic-go/quic-go@v0.55.0/http3/server.go:538 +0x5a\ncreated by github.com/quic-go/quic-go/http3.(*Server).handleConn in goroutine 365\n\t/root/go/pkg/mod/github.com/quic-go/quic-go@v0.55.0/http3/server.go:534 +0x426\n" > godoxy-proxy | 10-27 13:18 ??? http2: panic serving 100.119.165.64:53125: runtime error: invalid memory address or nil pointer dereference > godoxy-proxy | goroutine 485 [running]: > godoxy-proxy | net/http.(*http2serverConn).runHandler.func1() > godoxy-proxy | /usr/local/go/src/net/http/h2_bundle.go:6379 +0x145 > godoxy-proxy | panic({0x1ae2220?, 0x3066050?}) > godoxy-proxy | /usr/local/go/src/runtime/panic.go:783 +0x132 > godoxy-proxy | github.com/yusing/godoxy/internal/auth.(*OIDCProvider).TryRefreshToken(0xc000503ef0, {0x2156ff0, 0xc00136df60}, {0xc000b0a558?, 0x4?}) > godoxy-proxy | /src/internal/auth/oauth_refresh.go:154 +0x156 > godoxy-proxy | github.com/yusing/godoxy/internal/auth.(*OIDCProvider).LoginHandler(0xc000503ef0, {0x2153780, 0xc00114c580}, 0xc0003f37c0) > godoxy-proxy | /src/internal/auth/oidc.go:225 +0xdb > godoxy-proxy | github.com/yusing/godoxy/internal/auth.AuthOrProceed({0x2153780, 0xc00114c580}, 0xc0003f37c0) > godoxy-proxy | /src/internal/auth/auth.go:65 +0x5c > godoxy-proxy | github.com/yusing/godoxy/internal/route/rules.init.func49.1({0x2153780?, 0xc00114c580?}, 0x80?) > godoxy-proxy | /src/internal/route/rules/do.go:73 +0x25 > godoxy-proxy | github.com/yusing/godoxy/internal/route/rules.NonTerminatingCommand.Handle(0x41c91b?, {0x2153780?, 0xc00114c580?}, 0x80?) > godoxy-proxy | /src/internal/route/rules/command.go:29 +0x29 > godoxy-proxy | github.com/yusing/godoxy/internal/route/rules.Commands.Handle(...) > godoxy-proxy | /src/internal/route/rules/command.go:65 > godoxy-proxy | github.com/yusing/godoxy/internal/route/rules.(*Rule).Handle(...) > godoxy-proxy | /src/internal/route/rules/rules.go:253 > godoxy-proxy | github.com/yusing/godoxy/internal/route/rules.Rules.BuildHandler.func3({0x2153150, 0xc00017c9b0}, 0xc0003f37c0) > godoxy-proxy | /src/internal/route/rules/rules.go:161 +0xb94 > godoxy-proxy | net/http.HandlerFunc.ServeHTTP(0xc00017c9b0?, {0x2153150?, 0xc00017c9b0?}, 0x12df7c2?) > godoxy-proxy | /usr/local/go/src/net/http/server.go:2322 +0x29 > godoxy-proxy | github.com/yusing/godoxy/internal/route.(*ReveseProxyRoute).ServeHTTP(0xc00017c9b0?, {0x2153150?, 0xc00017c9b0?}, 0xc00098d370?) > godoxy-proxy | /src/internal/route/reverse_proxy.go:156 +0x26 > godoxy-proxy | github.com/yusing/godoxy/internal/net/gphttp/middleware.(*Middleware).ServeHTTP(0xc000a233b0, 0xc0001eac10, {0x2153a50, 0xc0000fa640}, 0xc0003f37c0) > godoxy-proxy | /src/internal/net/gphttp/middleware/middleware.go:191 +0x183 > godoxy-proxy | github.com/yusing/godoxy/internal/entrypoint.(*Entrypoint).ServeHTTP(0xc00034cab8, {0x2153690?, 0xc00019e508?}, 0xc0003f37c0) > godoxy-proxy | /src/internal/entrypoint/entrypoint.go:103 +0x269 > godoxy-proxy | github.com/yusing/goutils/server.(*Server).Start.advertiseHTTP3.func6({0x2153690?, 0xc00019e508?}, 0xc0003f37c0?) > godoxy-proxy | /src/goutils/server/utils.go:37 +0x95 > godoxy-proxy | net/http.HandlerFunc.ServeHTTP(0x0?, {0x2153690?, 0xc00019e508?}, 0x0?) > godoxy-proxy | /usr/local/go/src/net/http/server.go:2322 +0x29 > godoxy-proxy | net/http.serverHandler.ServeHTTP({0x7570ad?}, {0x2153690?, 0xc00019e508?}, 0x0?) > godoxy-proxy | /usr/local/go/src/net/http/server.go:3340 +0x8e > godoxy-proxy | net/http.initALPNRequest.ServeHTTP({{0x2156d28?, 0xc001266ea0?}, 0xc0010fe388?, {0xc0006f4200?}}, {0x2153690, 0xc00019e508}, 0xc0003f37c0) > godoxy-proxy | /usr/local/go/src/net/http/server.go:4013 +0x231 > godoxy-proxy | net/http.(*http2serverConn).runHandler(0x75d2c8?, 0xc000834000?, 0x2156d28?, 0xc0005a48a0?) > godoxy-proxy | /usr/local/go/src/net/http/h2_bundle.go:6386 +0xf0 > godoxy-proxy | created by net/http.(*http2serverConn).scheduleHandler in goroutine 445 > godoxy-proxy | /usr/local/go/src/net/http/h2_bundle.go:6320 +0x21f > ``` Ok, will check that later
Author
Owner

@FrozenFrog commented on GitHub (Oct 27, 2025):

godoxy-proxy  | panic: runtime error: invalid memory address or nil pointer dereference
godoxy-proxy  | [signal SIGSEGV: segmentation violation code=0x1 addr=0x8 pc=0x12ed8b7]

It stills panic after update, do I need to clear cache folder?

@FrozenFrog commented on GitHub (Oct 27, 2025): ``` godoxy-proxy | panic: runtime error: invalid memory address or nil pointer dereference godoxy-proxy | [signal SIGSEGV: segmentation violation code=0x1 addr=0x8 pc=0x12ed8b7] ``` It stills panic after update, do I need to clear cache folder?
Author
Owner

@yusing commented on GitHub (Oct 27, 2025):

godoxy-proxy  | panic: runtime error: invalid memory address or nil pointer dereference
godoxy-proxy  | [signal SIGSEGV: segmentation violation code=0x1 addr=0x8 pc=0x12ed8b7]

It stills panic after update, do I need to clear cache folder?

Run it with env GOTRACEBACK=all, then send me the full traceback so I can debug

@yusing commented on GitHub (Oct 27, 2025): > ``` > godoxy-proxy | panic: runtime error: invalid memory address or nil pointer dereference > godoxy-proxy | [signal SIGSEGV: segmentation violation code=0x1 addr=0x8 pc=0x12ed8b7] > ``` > > It stills panic after update, do I need to clear cache folder? Run it with env `GOTRACEBACK=all`, then send me the full traceback so I can debug
Author
Owner

@FrozenFrog commented on GitHub (Oct 27, 2025):

It's too weird

Image
services:
  frontend:
    image: ghcr.io/yusing/godoxy-frontend:${TAG:-latest}
    network_mode: bridge
    container_name: godoxy-frontend
    hostname: godoxy-frontend
    environment:
      TZ: ${TZ}
      GODOXY_API_ADDR: ${GODOXY_API_ADDR}
    restart: unless-stopped
    user: ${GODOXY_UID:-1000}:${GODOXY_GID:-1000}
    read_only: true
    security_opt:
      - no-new-privileges:true
    cap_drop:
      - all
    depends_on:
      - app
  app:
    image: ghcr.io/yusing/godoxy:${TAG:-latest}
    network_mode: host # do not change this
    container_name: godoxy-proxy
    hostname: godoxy-proxy
    environment:
      GOTRACEBACK: all
      GODOXY_DEBUG: true
      DOCKER_HOST: "tcp://${SOCKET_PROXY_LISTEN_ADDR:-127.0.0.1:2375}"
      LEGO_DISABLE_CNAME_SUPPORT: 1
      GODOXY_API_JWT_SECRET: ${GODOXY_API_JWT_SECRET}
      GODOXY_OIDC_ISSUER_URL: ${POCKETID_OIDC_ISSUER_URL}
      GODOXY_OIDC_CLIENT_ID: ${GODOXY_OIDC_CLIENT_ID}
      GODOXY_OIDC_CLIENT_SECRET: ${GODOXY_OIDC_CLIENT_SECRET}
      GODOXY_OIDC_SCOPES: ${GODOXY_OIDC_SCOPES}
      GODOXY_OIDC_ALLOWED_USERS: ${GODOXY_OIDC_ALLOWED_USERS}
      GODOXY_OIDC_ALLOWED_GROUPS: ${GODOXY_OIDC_ALLOWED_GROUPS}
      GODOXY_API_ADDR: ${GODOXY_API_ADDR}
      TZ: ${TZ}
    volumes:
      - ${BASEPATH}/${APP_CONFIG_PATH}/config:/app/config
      - ${BASEPATH}/${APP_CONFIG_PATH}/logs:/app/logs
      - ${BASEPATH}/${APP_CONFIG_PATH}/error_pages:/app/error_pages:ro
      - ${BASEPATH}/${APP_CONFIG_PATH}/data:/app/data
      - ${BASEPATH}/${APP_CONFIG_PATH}/certs:/app/certs
    restart: always
    user: ${GODOXY_UID:-1000}:${GODOXY_GID:-1000}
    security_opt:
      - no-new-privileges:true
    cap_drop:
      - all
    cap_add:
      - NET_BIND_SERVICE
# docker image tag (latest, nightly)
TAG=latest
APP_CONFIG_PATH=godoxy-config
# container uid and gid (must match the owner of mounted directories)
GODOXY_UID=1000
GODOXY_GID=1000

# Set GODOXY_API_JWT_SECURE=false to allow http
GODOXY_API_JWT_SECURE=true
# API JWT Configuration (common)
# generate secret with `openssl rand -base64 32`
GODOXY_API_JWT_SECRET=...
# the JWT token time-to-live
# leave empty to use default (24 hours)
# format: https://pkg.go.dev/time#Duration
GODOXY_API_JWT_TOKEN_TTL=

# Proxy listening address
GODOXY_HTTP_ADDR=:80
GODOXY_HTTPS_ADDR=:443

# Enable HTTP3
GODOXY_HTTP3_ENABLED=true

# API listening address
GODOXY_API_ADDR=127.0.0.1:8888

# Metrics
GODOXY_METRICS_DISABLE_CPU=false
GODOXY_METRICS_DISABLE_MEMORY=false
GODOXY_METRICS_DISABLE_DISK=false
GODOXY_METRICS_DISABLE_NETWORK=false
GODOXY_METRICS_DISABLE_SENSORS=false

# Frontend listening port
GODOXY_FRONTEND_PORT=3001

# Frontend aliases (subdomains / FQDNs, e.g. godoxy, godoxy.domain.com)
GODOXY_FRONTEND_ALIASES=godoxy

# Docker socket
# /var/run/podman/podman.sock for podman
DOCKER_SOCKET=/var/run/docker.sock
SOCKET_PROXY_LISTEN_ADDR=192.168.1.2:2375
# Debug mode
GODOXY_DEBUG=true
autocert:
  provider: cloudflare
  email: ...
  domains:
    - "*.domain"
  options:
    auth_token: ...
entrypoint:
  middlewares:
    - use: CloudflareRealIP
    - use: ModifyResponse
      set_headers:
        Access-Control-Allow-Methods: GET, POST, PUT, PATCH, DELETE, OPTIONS, HEAD
        Access-Control-Allow-Headers: "*"
        Access-Control-Allow-Origin: "*"
        Access-Control-Max-Age: 180
        Vary: "*"
        X-XSS-Protection: 1; mode=block
        Content-Security-Policy: object-src 'self'; frame-ancestors 'self';
        X-Content-Type-Options: nosniff
        X-Frame-Options: SAMEORIGIN
        Referrer-Policy: same-origin
        Strict-Transport-Security: max-age=63072000; includeSubDomains; preload
    - use: ForwardAuth
      bypass:
        - path glob(/api/**)
        - route tinyauth
        - route jellyfin
        - route vaultwarden & path glob(/identity/**)
  access_log:
    format: combined
    path: /app/logs/entrypoint.log
providers:
  docker:
    local: $DOCKER_HOST
match_domains:
homepage:
  use_default_categories: true
timeout_shutdown: 5
@FrozenFrog commented on GitHub (Oct 27, 2025): It's too weird <img width="1323" height="561" alt="Image" src="https://github.com/user-attachments/assets/67cb4361-d4dc-4ae7-9b9e-8e2cbd1b31ad" /> ``` services: frontend: image: ghcr.io/yusing/godoxy-frontend:${TAG:-latest} network_mode: bridge container_name: godoxy-frontend hostname: godoxy-frontend environment: TZ: ${TZ} GODOXY_API_ADDR: ${GODOXY_API_ADDR} restart: unless-stopped user: ${GODOXY_UID:-1000}:${GODOXY_GID:-1000} read_only: true security_opt: - no-new-privileges:true cap_drop: - all depends_on: - app app: image: ghcr.io/yusing/godoxy:${TAG:-latest} network_mode: host # do not change this container_name: godoxy-proxy hostname: godoxy-proxy environment: GOTRACEBACK: all GODOXY_DEBUG: true DOCKER_HOST: "tcp://${SOCKET_PROXY_LISTEN_ADDR:-127.0.0.1:2375}" LEGO_DISABLE_CNAME_SUPPORT: 1 GODOXY_API_JWT_SECRET: ${GODOXY_API_JWT_SECRET} GODOXY_OIDC_ISSUER_URL: ${POCKETID_OIDC_ISSUER_URL} GODOXY_OIDC_CLIENT_ID: ${GODOXY_OIDC_CLIENT_ID} GODOXY_OIDC_CLIENT_SECRET: ${GODOXY_OIDC_CLIENT_SECRET} GODOXY_OIDC_SCOPES: ${GODOXY_OIDC_SCOPES} GODOXY_OIDC_ALLOWED_USERS: ${GODOXY_OIDC_ALLOWED_USERS} GODOXY_OIDC_ALLOWED_GROUPS: ${GODOXY_OIDC_ALLOWED_GROUPS} GODOXY_API_ADDR: ${GODOXY_API_ADDR} TZ: ${TZ} volumes: - ${BASEPATH}/${APP_CONFIG_PATH}/config:/app/config - ${BASEPATH}/${APP_CONFIG_PATH}/logs:/app/logs - ${BASEPATH}/${APP_CONFIG_PATH}/error_pages:/app/error_pages:ro - ${BASEPATH}/${APP_CONFIG_PATH}/data:/app/data - ${BASEPATH}/${APP_CONFIG_PATH}/certs:/app/certs restart: always user: ${GODOXY_UID:-1000}:${GODOXY_GID:-1000} security_opt: - no-new-privileges:true cap_drop: - all cap_add: - NET_BIND_SERVICE ``` ``` # docker image tag (latest, nightly) TAG=latest APP_CONFIG_PATH=godoxy-config # container uid and gid (must match the owner of mounted directories) GODOXY_UID=1000 GODOXY_GID=1000 # Set GODOXY_API_JWT_SECURE=false to allow http GODOXY_API_JWT_SECURE=true # API JWT Configuration (common) # generate secret with `openssl rand -base64 32` GODOXY_API_JWT_SECRET=... # the JWT token time-to-live # leave empty to use default (24 hours) # format: https://pkg.go.dev/time#Duration GODOXY_API_JWT_TOKEN_TTL= # Proxy listening address GODOXY_HTTP_ADDR=:80 GODOXY_HTTPS_ADDR=:443 # Enable HTTP3 GODOXY_HTTP3_ENABLED=true # API listening address GODOXY_API_ADDR=127.0.0.1:8888 # Metrics GODOXY_METRICS_DISABLE_CPU=false GODOXY_METRICS_DISABLE_MEMORY=false GODOXY_METRICS_DISABLE_DISK=false GODOXY_METRICS_DISABLE_NETWORK=false GODOXY_METRICS_DISABLE_SENSORS=false # Frontend listening port GODOXY_FRONTEND_PORT=3001 # Frontend aliases (subdomains / FQDNs, e.g. godoxy, godoxy.domain.com) GODOXY_FRONTEND_ALIASES=godoxy # Docker socket # /var/run/podman/podman.sock for podman DOCKER_SOCKET=/var/run/docker.sock SOCKET_PROXY_LISTEN_ADDR=192.168.1.2:2375 # Debug mode GODOXY_DEBUG=true ``` ``` autocert: provider: cloudflare email: ... domains: - "*.domain" options: auth_token: ... entrypoint: middlewares: - use: CloudflareRealIP - use: ModifyResponse set_headers: Access-Control-Allow-Methods: GET, POST, PUT, PATCH, DELETE, OPTIONS, HEAD Access-Control-Allow-Headers: "*" Access-Control-Allow-Origin: "*" Access-Control-Max-Age: 180 Vary: "*" X-XSS-Protection: 1; mode=block Content-Security-Policy: object-src 'self'; frame-ancestors 'self'; X-Content-Type-Options: nosniff X-Frame-Options: SAMEORIGIN Referrer-Policy: same-origin Strict-Transport-Security: max-age=63072000; includeSubDomains; preload - use: ForwardAuth bypass: - path glob(/api/**) - route tinyauth - route jellyfin - route vaultwarden & path glob(/identity/**) access_log: format: combined path: /app/logs/entrypoint.log providers: docker: local: $DOCKER_HOST match_domains: homepage: use_default_categories: true timeout_shutdown: 5 ```
Author
Owner

@yusing commented on GitHub (Oct 27, 2025):

@FrozenFrog I need a traceback log like this:

godoxy  | panic: runtime error: invalid memory address or nil pointer dereference
godoxy  | [signal SIGSEGV: segmentation violation code=0x1 addr=0x28 pc=0x12ed511]
godoxy  | 
godoxy  | goroutine 80 [running]:
godoxy  | github.com/yusing/goutils/task.(*Task).needFinish(...)
godoxy  | 	/src/goutils/task/task.go:240
godoxy  | github.com/yusing/goutils/task.(*Task).OnFinished(...)
godoxy  | 	/src/goutils/task/task.go:98
godoxy  | github.com/yusing/godoxy/internal/watcher/health/monitor.(*DockerHealthMonitor).Start(0xc0007a1840, {0x215af60, 0xc00081c960})
godoxy  | 	/src/internal/watcher/health/monitor/docker.go:44 +0x1d1
godoxy  | github.com/yusing/godoxy/internal/route.(*ReveseProxyRoute).Start(0xc0001ad890, {0x215af60, 0xc000755c20})
godoxy  | 	/src/internal/route/reverse_proxy.go:135 +0x3a2
godoxy  | github.com/yusing/godoxy/internal/route.(*Route).start(0xc0007712c0, {0x215af60, 0xc000755c20})
godoxy  | 	/src/internal/route/route.go:349 +0xfa
godoxy  | github.com/yusing/godoxy/internal/route.(*Route).Start.func1()
godoxy  | 	/src/internal/route/route.go:327 +0x25
godoxy  | sync.(*Once).doSlow(0xb6405eec4a4e5705?, 0xf136b0daed7f10de?)
godoxy  | 	/usr/local/go/src/sync/once.go:78 +0xac
godoxy  | sync.(*Once).Do(...)
godoxy  | 	/usr/local/go/src/sync/once.go:69
godoxy  | github.com/yusing/godoxy/internal/route.(*Route).Start(0xc0007712c0, {0x215af60?, 0xc000755c20?})
godoxy  | 	/src/internal/route/route.go:326 +0x65
godoxy  | github.com/yusing/godoxy/internal/route/provider.(*Provider).startRoute(0xc00081c460, {0x215af60?, 0xc000755c20?}, 0xc0007712c0)
godoxy  | 	/src/internal/route/provider/provider.go:222 +0x2e
godoxy  | github.com/yusing/godoxy/internal/route/provider.(*Provider).Start.func1(0x5?)
godoxy  | 	/src/internal/route/provider/provider.go:121 +0x65
godoxy  | created by github.com/yusing/godoxy/internal/route/provider.(*Provider).Start in goroutine 134
godoxy  | 	/src/internal/route/provider/provider.go:119 +0x345
  1. Use GOTRACEBACK=all
  2. Comment out user: ... in compose.yml to run as root temporarily
@yusing commented on GitHub (Oct 27, 2025): @FrozenFrog I need a traceback log like this: ``` godoxy | panic: runtime error: invalid memory address or nil pointer dereference godoxy | [signal SIGSEGV: segmentation violation code=0x1 addr=0x28 pc=0x12ed511] godoxy | godoxy | goroutine 80 [running]: godoxy | github.com/yusing/goutils/task.(*Task).needFinish(...) godoxy | /src/goutils/task/task.go:240 godoxy | github.com/yusing/goutils/task.(*Task).OnFinished(...) godoxy | /src/goutils/task/task.go:98 godoxy | github.com/yusing/godoxy/internal/watcher/health/monitor.(*DockerHealthMonitor).Start(0xc0007a1840, {0x215af60, 0xc00081c960}) godoxy | /src/internal/watcher/health/monitor/docker.go:44 +0x1d1 godoxy | github.com/yusing/godoxy/internal/route.(*ReveseProxyRoute).Start(0xc0001ad890, {0x215af60, 0xc000755c20}) godoxy | /src/internal/route/reverse_proxy.go:135 +0x3a2 godoxy | github.com/yusing/godoxy/internal/route.(*Route).start(0xc0007712c0, {0x215af60, 0xc000755c20}) godoxy | /src/internal/route/route.go:349 +0xfa godoxy | github.com/yusing/godoxy/internal/route.(*Route).Start.func1() godoxy | /src/internal/route/route.go:327 +0x25 godoxy | sync.(*Once).doSlow(0xb6405eec4a4e5705?, 0xf136b0daed7f10de?) godoxy | /usr/local/go/src/sync/once.go:78 +0xac godoxy | sync.(*Once).Do(...) godoxy | /usr/local/go/src/sync/once.go:69 godoxy | github.com/yusing/godoxy/internal/route.(*Route).Start(0xc0007712c0, {0x215af60?, 0xc000755c20?}) godoxy | /src/internal/route/route.go:326 +0x65 godoxy | github.com/yusing/godoxy/internal/route/provider.(*Provider).startRoute(0xc00081c460, {0x215af60?, 0xc000755c20?}, 0xc0007712c0) godoxy | /src/internal/route/provider/provider.go:222 +0x2e godoxy | github.com/yusing/godoxy/internal/route/provider.(*Provider).Start.func1(0x5?) godoxy | /src/internal/route/provider/provider.go:121 +0x65 godoxy | created by github.com/yusing/godoxy/internal/route/provider.(*Provider).Start in goroutine 134 godoxy | /src/internal/route/provider/provider.go:119 +0x345 ``` 1. Use `GOTRACEBACK=all` 2. Comment out `user: ...` in `compose.yml` to run as root temporarily
Author
Owner

@FrozenFrog commented on GitHub (Oct 27, 2025):

@FrozenFrog I need a traceback log like this:

godoxy  | panic: runtime error: invalid memory address or nil pointer dereference
godoxy  | [signal SIGSEGV: segmentation violation code=0x1 addr=0x28 pc=0x12ed511]
godoxy  | 
godoxy  | goroutine 80 [running]:
godoxy  | github.com/yusing/goutils/task.(*Task).needFinish(...)
godoxy  | 	/src/goutils/task/task.go:240
godoxy  | github.com/yusing/goutils/task.(*Task).OnFinished(...)
godoxy  | 	/src/goutils/task/task.go:98
godoxy  | github.com/yusing/godoxy/internal/watcher/health/monitor.(*DockerHealthMonitor).Start(0xc0007a1840, {0x215af60, 0xc00081c960})
godoxy  | 	/src/internal/watcher/health/monitor/docker.go:44 +0x1d1
godoxy  | github.com/yusing/godoxy/internal/route.(*ReveseProxyRoute).Start(0xc0001ad890, {0x215af60, 0xc000755c20})
godoxy  | 	/src/internal/route/reverse_proxy.go:135 +0x3a2
godoxy  | github.com/yusing/godoxy/internal/route.(*Route).start(0xc0007712c0, {0x215af60, 0xc000755c20})
godoxy  | 	/src/internal/route/route.go:349 +0xfa
godoxy  | github.com/yusing/godoxy/internal/route.(*Route).Start.func1()
godoxy  | 	/src/internal/route/route.go:327 +0x25
godoxy  | sync.(*Once).doSlow(0xb6405eec4a4e5705?, 0xf136b0daed7f10de?)
godoxy  | 	/usr/local/go/src/sync/once.go:78 +0xac
godoxy  | sync.(*Once).Do(...)
godoxy  | 	/usr/local/go/src/sync/once.go:69
godoxy  | github.com/yusing/godoxy/internal/route.(*Route).Start(0xc0007712c0, {0x215af60?, 0xc000755c20?})
godoxy  | 	/src/internal/route/route.go:326 +0x65
godoxy  | github.com/yusing/godoxy/internal/route/provider.(*Provider).startRoute(0xc00081c460, {0x215af60?, 0xc000755c20?}, 0xc0007712c0)
godoxy  | 	/src/internal/route/provider/provider.go:222 +0x2e
godoxy  | github.com/yusing/godoxy/internal/route/provider.(*Provider).Start.func1(0x5?)
godoxy  | 	/src/internal/route/provider/provider.go:121 +0x65
godoxy  | created by github.com/yusing/godoxy/internal/route/provider.(*Provider).Start in goroutine 134
godoxy  | 	/src/internal/route/provider/provider.go:119 +0x345
  1. Use GOTRACEBACK=all
  2. Comment out user: ... in compose.yml to run as root temporarily

Yes, I have used GOTRACEBACK=all in my environment (docker compose, app service). I use Komodo for container management. As you can see, the godoxy app (whose container name I specified as godoxy-proxy) appears in the Komodo logs. Did I make any mistake anywhere?

Image
@FrozenFrog commented on GitHub (Oct 27, 2025): > [@FrozenFrog](https://github.com/FrozenFrog) I need a traceback log like this: > > ``` > godoxy | panic: runtime error: invalid memory address or nil pointer dereference > godoxy | [signal SIGSEGV: segmentation violation code=0x1 addr=0x28 pc=0x12ed511] > godoxy | > godoxy | goroutine 80 [running]: > godoxy | github.com/yusing/goutils/task.(*Task).needFinish(...) > godoxy | /src/goutils/task/task.go:240 > godoxy | github.com/yusing/goutils/task.(*Task).OnFinished(...) > godoxy | /src/goutils/task/task.go:98 > godoxy | github.com/yusing/godoxy/internal/watcher/health/monitor.(*DockerHealthMonitor).Start(0xc0007a1840, {0x215af60, 0xc00081c960}) > godoxy | /src/internal/watcher/health/monitor/docker.go:44 +0x1d1 > godoxy | github.com/yusing/godoxy/internal/route.(*ReveseProxyRoute).Start(0xc0001ad890, {0x215af60, 0xc000755c20}) > godoxy | /src/internal/route/reverse_proxy.go:135 +0x3a2 > godoxy | github.com/yusing/godoxy/internal/route.(*Route).start(0xc0007712c0, {0x215af60, 0xc000755c20}) > godoxy | /src/internal/route/route.go:349 +0xfa > godoxy | github.com/yusing/godoxy/internal/route.(*Route).Start.func1() > godoxy | /src/internal/route/route.go:327 +0x25 > godoxy | sync.(*Once).doSlow(0xb6405eec4a4e5705?, 0xf136b0daed7f10de?) > godoxy | /usr/local/go/src/sync/once.go:78 +0xac > godoxy | sync.(*Once).Do(...) > godoxy | /usr/local/go/src/sync/once.go:69 > godoxy | github.com/yusing/godoxy/internal/route.(*Route).Start(0xc0007712c0, {0x215af60?, 0xc000755c20?}) > godoxy | /src/internal/route/route.go:326 +0x65 > godoxy | github.com/yusing/godoxy/internal/route/provider.(*Provider).startRoute(0xc00081c460, {0x215af60?, 0xc000755c20?}, 0xc0007712c0) > godoxy | /src/internal/route/provider/provider.go:222 +0x2e > godoxy | github.com/yusing/godoxy/internal/route/provider.(*Provider).Start.func1(0x5?) > godoxy | /src/internal/route/provider/provider.go:121 +0x65 > godoxy | created by github.com/yusing/godoxy/internal/route/provider.(*Provider).Start in goroutine 134 > godoxy | /src/internal/route/provider/provider.go:119 +0x345 > ``` > > 1. Use `GOTRACEBACK=all` > 2. Comment out `user: ...` in `compose.yml` to run as root temporarily Yes, I have used GOTRACEBACK=all in my environment (docker compose, app service). I use Komodo for container management. As you can see, the godoxy app (whose container name I specified as godoxy-proxy) appears in the Komodo logs. Did I make any mistake anywhere? <img width="2118" height="1755" alt="Image" src="https://github.com/user-attachments/assets/ebf899fe-66f6-4dee-b54d-31768c5c03b4" />
Author
Owner

@yusing commented on GitHub (Oct 28, 2025):

@FrozenFrog emm, could you try commenting out user: ${GODOXY_UID:-1000}:${GODOXY_GID:-1000} then run it again once.

@yusing commented on GitHub (Oct 28, 2025): @FrozenFrog emm, could you try commenting out `user: ${GODOXY_UID:-1000}:${GODOXY_GID:-1000}` then run it again once.
Author
Owner

@FrozenFrog commented on GitHub (Oct 28, 2025):

@FrozenFrog emm, could you try commenting out user: ${GODOXY_UID:-1000}:${GODOXY_GID:-1000} then run it again once.
Hope it helps
https://pastebin.com/0r4hax905

@FrozenFrog commented on GitHub (Oct 28, 2025): > [@FrozenFrog](https://github.com/FrozenFrog) emm, could you try commenting out `user: ${GODOXY_UID:-1000}:${GODOXY_GID:-1000}` then run it again once. Hope it helps https://pastebin.com/0r4hax905
Author
Owner

@yusing commented on GitHub (Oct 28, 2025):

@FrozenFrog emm, could you try commenting out user: ${GODOXY_UID:-1000}:${GODOXY_GID:-1000} then run it again once.
Hope it helps
https://pastebin.com/0r4hax60

Thank you so much, will have a look and fix it asap.

@yusing commented on GitHub (Oct 28, 2025): > > [@FrozenFrog](https://github.com/FrozenFrog) emm, could you try commenting out `user: ${GODOXY_UID:-1000}:${GODOXY_GID:-1000}` then run it again once. > Hope it helps > https://pastebin.com/0r4hax60 Thank you so much, will have a look and fix it asap.
Author
Owner

@yusing commented on GitHub (Oct 28, 2025):

@FrozenFrog @starskyzheng see if it still happen in v0.20.3

@yusing commented on GitHub (Oct 28, 2025): @FrozenFrog @starskyzheng see if it still happen in v0.20.3
Author
Owner

@FrozenFrog commented on GitHub (Oct 28, 2025):

@FrozenFrog @starskyzheng see if it still happen in v0.20.3

It stills there, I will PM you on discord to send more logs

@FrozenFrog commented on GitHub (Oct 28, 2025): > [@FrozenFrog](https://github.com/FrozenFrog) [@starskyzheng](https://github.com/starskyzheng) see if it still happen in v0.20.3 It stills there, I will PM you on discord to send more logs
Author
Owner

@abjoseph commented on GitHub (Oct 28, 2025):

@FrozenFrog @starskyzheng see if it still happen in v0.20.3

Hi @yusing FYI - Just adding myself as one more data-point having this panic error. My config/setup is near identical to @FrozenFrog.

Also, FYI - I've been using the same instance/setup since the beginning of godoxy (then go-proxy), and have just been steadily updating image and config since, not sure if that makes a difference but figured I'd mention.

@abjoseph commented on GitHub (Oct 28, 2025): > [@FrozenFrog](https://github.com/FrozenFrog) [@starskyzheng](https://github.com/starskyzheng) see if it still happen in v0.20.3 Hi @yusing FYI - Just adding myself as one more data-point having this panic error. My config/setup is near identical to @FrozenFrog. Also, FYI - I've been using the same instance/setup since the beginning of godoxy (then go-proxy), and have just been steadily updating image and config since, not sure if that makes a difference but figured I'd mention.
Author
Owner

@yusing commented on GitHub (Oct 29, 2025):

@FrozenFrog @starskyzheng see if it still happen in v0.20.3

Hi @yusing FYI - Just adding myself as one more data-point having this panic error. My config/setup is near identical to @FrozenFrog.

Also, FYI - I've been using the same instance/setup since the beginning of godoxy (then go-proxy), and have just been steadily updating image and config since, not sure if that makes a difference but figured I'd mention.

I've asked @FrozenFrog and his issue has resolved, make sure you have the image up-to-date. If it still happens, please send me the log.

@yusing commented on GitHub (Oct 29, 2025): > > [@FrozenFrog](https://github.com/FrozenFrog) [@starskyzheng](https://github.com/starskyzheng) see if it still happen in v0.20.3 > > Hi [@yusing](https://github.com/yusing) FYI - Just adding myself as one more data-point having this panic error. My config/setup is near identical to [@FrozenFrog](https://github.com/FrozenFrog). > > Also, FYI - I've been using the same instance/setup since the beginning of godoxy (then go-proxy), and have just been steadily updating image and config since, not sure if that makes a difference but figured I'd mention. I've asked @FrozenFrog and his issue has resolved, make sure you have the image up-to-date. If it still happens, please send me the log.
Author
Owner

@gatesry commented on GitHub (Oct 29, 2025):

Latest version worked! Thank you.

@gatesry commented on GitHub (Oct 29, 2025): Latest version worked! Thank you.
Author
Owner

@abjoseph commented on GitHub (Oct 30, 2025):

@yusing I've attached the full traceback logs. Let me know if you need the other configs, though they're nearly 1-1 with what has been shared above.

godoxy_logs.txt

Setup/Config:

Frontend: v0.20.3
Backend: v0.20.4

@abjoseph commented on GitHub (Oct 30, 2025): @yusing I've attached the full traceback logs. Let me know if you need the other configs, though they're nearly 1-1 with what has been shared above. [godoxy_logs.txt](https://github.com/user-attachments/files/23235083/godoxy_logs.txt) ### Setup/Config: **Frontend**: _v0.20.3_ **Backend**: _v0.20.4_
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/godoxy#116