How to debug huge core dumps with no errors in logs · php/frankenphp · Discussion #2121

Recently (starting around a deploy on January 2nd) I've been getting crashes in our Docker container without any indication on why and where they happen. I cannot reproduce them locally and they happen infrequently (sometimes multiple times in a few hours, sometimes after days).

After removing core limits, I get huge core dumps of 1.4GB (PHP memory limit 256MB). The only log line that comes at least a little bit close is
docker-97da20bc7166cdb1414cde3710ee7089b886fca5966096203743b17cc6d01936.scope: Consumed 6h 20min 6.235s CPU time, 1.7G memory peak, 44M read from disk, 1.9G written to disk. from the docker unit, where typically a container would write only a few MBs in days.

I compiled FrankenPHP with the same Caddy modules our live container is using and debugging symbols enabled:

FROM dunglas/frankenphp:1-builder-php8.5-trixie AS frankenphp_build_dbg

COPY --from=caddy:builder /usr/bin/xcaddy /usr/bin/xcaddy

RUN  apt-get update \
  && DEBIAN_FRONTEND=noninteractive apt-get -y --no-install-recommends install \
	bison \
  && apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/*


WORKDIR /usr/local/src/php

RUN git clone --depth=1 --branch=php-8.5.1 https://github.com/php/php-src.git . \
  && ./buildconf --force  \
  && EXTENSION_DIR=/usr/lib/frankenphp/modules ./configure \
    --enable-embed \
    --enable-zts \
    --disable-zend-signals \
    --enable-zend-max-execution-timers \
    --with-config-file-path=/etc/frankenphp/php.ini \
    --with-config-file-scan-dir=/etc/frankenphp/php.d \
    --enable-debug  \
  && make -j"$(nproc)" \
  && make install \
  && ldconfig


WORKDIR /go/src/app

RUN CGO_ENABLED=1 \
    XCADDY_SETCAP=1 \
    XCADDY_DEBUG=1 \
    XCADDY_GO_BUILD_FLAGS="-ldflags='-tags=nobadger,nomysql,nopgx" \
    CGO_CFLAGS="-ggdb3 $(php-config --includes)" \
    CFLAGS="-ggdb3" \
    CGO_LDFLAGS="$(php-config --ldflags) $(php-config --libs)" \
    xcaddy build \
        --output /usr/local/bin/frankenphp-dbg \
        --with github.com/dunglas/frankenphp=./ \
        --with github.com/dunglas/frankenphp/caddy=./caddy/ \
        --with github.com/dunglas/caddy-cbrotli@v${caddy_brotli_version} \
        #--with github.com/dunglas/mercure/caddy \
        #--with github.com/dunglas/vulcain/caddy \
        [… additional modules]



FROM our-live-image-with-extensions as dbg-image

RUN  apt-get update \
  && DEBIAN_FRONTEND=noninteractive apt-get -y --no-install-recommends install \
     gdb \
     valgrind \
     libtool-bin \
  && echo 'set auto-load safe-path /' > /root/.gdbinit \
  && echo '* soft core unlimited' >> /etc/security/limits.conf \
  && apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/*

COPY --from=frankenphp_build_dbg /usr/local/bin/frankenphp /usr/local/bin/frankenphp
COPY --from=frankenphp_build_dbg /usr/local/src /usr/local/src
COPY --from=frankenphp_build_dbg /usr/local/go/src /usr/local/go/src
COPY --from=frankenphp_build_dbg /go /go
docker run -it --rm --volume=./tmp:/dbg dbg-image gdb frankenphp-dbg /dbg/core

Here's what gdb has to say:

Reading symbols from frankenphp-dbg...

warning: Can't open file /dev/zero (deleted) during file-backed mapping note processing
[New LWP 43]
[New LWP 14]
[New LWP 38]
[New LWP 37]
[New LWP 31]
[New LWP 41]
[New LWP 33]
[New LWP 39]
[New LWP 40]
[New LWP 44]
[New LWP 34]
[New LWP 45]
[New LWP 36]
[New LWP 623]
[New LWP 26]
[New LWP 27]
[New LWP 28]
[New LWP 29]
[New LWP 30]
[New LWP 32]
[New LWP 42]
[New LWP 149]
[New LWP 150]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `/usr/local/bin/frankenphp-dbg run --config /etc/caddy/Caddyfile --adapter caddyfile'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  runtime.raise () at /usr/local/go/src/runtime/sys_linux_amd64.s:154
154		RET
[Current thread is 1 (Thread 0x7f22c27fc6c0 (LWP 43))]
Loading Go Runtime support.
(gdb) where
#0  runtime.raise () at /usr/local/go/src/runtime/sys_linux_amd64.s:154
#1  0x000000000046e82d in runtime.raisebadsignal (sig=11, c=0xc000c99410) at /usr/local/go/src/runtime/signal_unix.go:1038
#2  0x000000000046eca5 in runtime.badsignal (sig=11, c=0xc000c99410) at /usr/local/go/src/runtime/signal_unix.go:1147
#3  0x000000000046d812 in runtime.sigtrampgo (sig=11, info=0xc000c995b0, ctx=0xc000c99480) at /usr/local/go/src/runtime/signal_unix.go:468
#4  0x0000000000498906 in runtime.sigtramp () at /usr/local/go/src/runtime/sys_linux_amd64.s:352
#5  <signal handler called>
#6  0x00007f23417873ea in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#7  0x00007f2341f968ce in zend_stack_push () from /usr/local/lib/libphp.so
#8  0x00007f2341e34950 in php_output_handler_start () from /usr/local/lib/libphp.so
#9  0x00007f2341e34dda in php_output_start_user () from /usr/local/lib/libphp.so
#10 0x00007f2341e34fca in ?? () from /usr/local/lib/libphp.so
#11 0x00007f2341f41e65 in execute_ex () from /usr/local/lib/libphp.so
#12 0x00007f2341ee6214 in zend_call_function () from /usr/local/lib/libphp.so
#13 0x00007f2341ee667d in zend_call_known_function () from /usr/local/lib/libphp.so
#14 0x00007f2341d6dcbe in ?? () from /usr/local/lib/libphp.so
#15 0x00007f2341f52685 in zend_hash_apply () from /usr/local/lib/libphp.so
#16 0x00007f2341d71231 in php_call_shutdown_functions () from /usr/local/lib/libphp.so
#17 0x00007f2341e2f39d in php_request_shutdown () from /usr/local/lib/libphp.so
#18 0x00000000029b4c16 in frankenphp_request_shutdown () at frankenphp.c:613
#19 frankenphp_execute_script (file_name=<optimized out>) at frankenphp.c:1094
#20 0x00000000029b4cf5 in php_thread (arg=<optimized out>) at frankenphp.c:948
#21 0x00007f234169cb7b in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#22 0x00007f234171a5f0 in clone () from /lib/x86_64-linux-gnu/libc.so.6

If it was PHP code, I would expect it to fail and then just log like any normal "out of memory error". I suspect it's a PHP extension, but except for updating FrankenPHP to 1.11 there were no other updates corresponding to the deploy date.

After running for two days now I can't see anything suspicious in the metrics either:

frankenphp_busy_workers{worker="/application/public/index.php"} 0
frankenphp_queue_depth 0
frankenphp_ready_workers{worker="/application/public/index.php"} 8
frankenphp_total_threads 9
frankenphp_total_workers{worker="/application/public/index.php"} 8
frankenphp_worker_crashes{worker="/application/public/index.php"} 2
frankenphp_worker_queue_depth{worker="/application/public/index.php"} 0
frankenphp_worker_request_count{worker="/application/public/index.php"} 136582
frankenphp_worker_request_time{worker="/application/public/index.php"} 17058.607846190895
frankenphp_worker_restarts{worker="/application/public/index.php"} 269

The worker crashes correspond to a strange Maximum execution time of 35 seconds exceeded in /application/vendor/symfony/http-foundation/Response.php we've been getting for a very long time now. There are no scripts that could somehow run in this timeout at all, so recently I've been thinking these are client related issues with HTTP/3 (client goes away before being able to send early hints, e.g.), but that's another issue entirely.


frankenphp build-info
go	go1.25.5
path	caddy
mod	caddy	(devel)	
dep	cel.dev/expr	v0.25.1	h1:1KrZg61W6TWSxuNZ37Xy49ps13NUovb66QLprthtwi4=
dep	cloud.google.com/go/auth	v0.18.0	h1:wnqy5hrv7p3k7cShwAU/Br3nzod7fxoqG+k0VZ+/Pk0=
dep	cloud.google.com/go/auth/oauth2adapt	v0.2.8	h1:keo8NaayQZ6wimpNSmW5OPc283g65QNIiLpZnkHRbnc=
dep	cloud.google.com/go/compute/metadata	v0.9.0	h1:pDUj4QMoPejqq20dK0Pg2N4yG9zIkYGdBtwLoEkH9Zs=
dep	dario.cat/mergo	v1.0.2	h1:85+piFYR1tMbRrLcDwR18y4UKJ3aH1Tbzi24VRW1TK8=
dep	filippo.io/edwards25519	v1.1.0	h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA=
dep	github.com/AndreasBriese/bbloom	v0.0.0-20190825152654-46b345b51c96	h1:cTp8I5+VIoKjsnZuH8vjyaysT/ses3EvZeaV/1UkF2M=
dep	github.com/BurntSushi/toml	v1.6.0	h1:dRaEfpa2VI55EwlIW72hMRHdWouJeRF7TPYhI+AUQjk=
dep	github.com/KimMachineGun/automemlimit	v0.7.5	h1:RkbaC0MwhjL1ZuBKunGDjE/ggwAX43DwZrJqVwyveTk=
dep	github.com/Masterminds/goutils	v1.1.1	h1:5nUrii3FMTL5diU80unEVvNevw1nH4+ZV4DSLVJLSYI=
dep	github.com/Masterminds/semver/v3	v3.4.0	h1:Zog+i5UMtVoCU8oKka5P7i9q9HgrJeGzI9SA1Xbatp0=
dep	github.com/Masterminds/sprig/v3	v3.3.0	h1:mQh0Yrg1XPo6vjYXgtf5OtijNAKJRNcTdOOGZe3tPhs=
dep	github.com/MauriceGit/skiplist	v0.0.0-20211105230623-77f5c8d3e145	h1:1yw6O62BReQ+uA1oyk9XaQTvLhcoHWmoQAgXmDFXpIY=
dep	github.com/MicahParks/jwkset	v0.11.0	h1:yc0zG+jCvZpWgFDFmvs8/8jqqVBG9oyIbmBtmjOhoyQ=
dep	github.com/MicahParks/keyfunc/v3	v3.7.0	h1:pdafUNyq+p3ZlvjJX1HWFP7MA3+cLpDtg69U3kITJGM=
dep	github.com/RoaringBitmap/roaring/v2	v2.14.4	h1:4aKySrrg9G/5oRtJ3TrZLObVqxgQ9f1znCRBwEwjuVw=
dep	github.com/alecthomas/chroma/v2	v2.21.1	h1:FaSDrp6N+3pphkNKU6HPCiYLgm8dbe5UXIXcoBhZSWA=
dep	github.com/antlr4-go/antlr/v4	v4.13.1	h1:SqQKkuVZ+zWkMMNkjy5FZe5mr5WURWnlpmOuzYWrPrQ=
dep	github.com/aryann/difflib	v0.0.0-20210328193216-ff5ff6dc229b	h1:uUXgbcPDK3KpW29o4iy7GtuappbWT0l5NaMo9H9pJDw=
dep	github.com/beorn7/perks	v1.0.1	h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
dep	github.com/bits-and-blooms/bitset	v1.24.4	h1:95H15Og1clikBrKr/DuzMXkQzECs1M6hhoGXLwLQOZE=
dep	github.com/caddy-dns/hetzner/v2	v2.0.0-preview-3	h1:goCjLvlteNFPQWspT3PRByhj1/AZhp5X8wNmd6zO2Gs=
dep	github.com/caddyserver/caddy/v2	v2.10.2	h1:g/gTYjGMD0dec+UgMw8SnfmJ3I9+M2TdvoRL/Ovu6U8=
dep	github.com/caddyserver/certmagic	v0.25.0	h1:VMleO/XA48gEWes5l+Fh6tRWo9bHkhwAEhx63i+F5ic=
dep	github.com/caddyserver/zerossl	v0.1.3	h1:onS+pxp3M8HnHpN5MMbOMyNjmTheJyWRaZYwn+YTAyA=
dep	github.com/ccoveille/go-safecast/v2	v2.0.0	h1:+5eyITXAUj3wMjad6cRVJKGnC7vDS55zk0INzJagub0=
dep	github.com/cenkalti/backoff/v5	v5.0.3	h1:ZN+IMa753KfX5hd8vVaMixjnqRZ3y8CuJKRKj1xcsSM=
dep	github.com/cespare/xxhash	v1.1.0	h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko=
dep	github.com/cespare/xxhash/v2	v2.3.0	h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
dep	github.com/chzyer/readline	v1.5.1	h1:upd/6fQk4src78LMRzh5vItIt361/o4uq553V8B5sGI=
dep	github.com/cloudflare/circl	v1.6.1	h1:zqIqSPIndyBh1bjLVVDHMPpVKqp8Su/V+6MeDzzQBQ0=
dep	github.com/coreos/go-oidc/v3	v3.17.0	h1:hWBGaQfbi0iVviX4ibC7bk8OKT5qNr4klBaCHVNvehc=
dep	github.com/cpuguy83/go-md2man/v2	v2.0.7	h1:zbFlGlXEAKlwXpmvle3d8Oe3YnkKIK4xSRTd3sHPnBo=
dep	github.com/dgraph-io/badger	v1.6.2	h1:mNw0qs90GVgGGWylh0umH5iag1j6n/PeJtNvL6KY/x8=
dep	github.com/dgraph-io/badger/v2	v2.2007.4	h1:TRWBQg8UrlUhaFdco01nO2uXwzKS7zd+HVdwV/GHc4o=
dep	github.com/dgraph-io/ristretto	v0.2.0	h1:XAfl+7cmoUDWW/2Lx8TGZQjjxIQ2Ley9DSf52dru4WE=
dep	github.com/dgryski/go-farm	v0.0.0-20240924180020-3414d57e47da	h1:aIftn67I1fkbMa512G+w+Pxci9hJPB8oMnkcP3iZF38=
dep	github.com/dlclark/regexp2	v1.11.5	h1:Q/sSnsKerHeCkc/jSTNq1oCm7KiVgUMZRDUoRu0JQZQ=
dep	github.com/dunglas/caddy-cbrotli	v1.0.1	h1:mkg7EB1GmoyfBt3kY3mq4o/0bfnBeq7ZLQjmVmdBE3Y=
dep	github.com/dunglas/frankenphp	v1.11.1
=>	/go/src/app	(devel)	

dep	github.com/dunglas/frankenphp/caddy	v1.11.1
=>	/go/src/app/caddy	(devel)	

dep	github.com/dunglas/mercure	v0.21.4	h1:mXPXHfB+4cYfFFCRRDY198mfef5+MQcdCpUnAHBUW2M=
dep	github.com/dunglas/mercure/caddy	v0.21.4	h1:7o+6rDqfwj1EOmXOgfBFsayvJvOUP37xujQHaxuX4ps=
dep	github.com/dunglas/skipfilter	v1.0.0	h1:JG9SgGg4n6BlFwuTYzb9RIqjH7PfwszvWehanrYWPF4=
dep	github.com/dustin/go-humanize	v1.0.1	h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY=
dep	github.com/e-dant/watcher/watcher-go	v0.0.0-20251208164151-f88ec3b7e146	h1:h3vVM6X45PK0mAk8NqiYNQGXTyhvXy1HQ5GhuQN4eeA=
dep	github.com/felixge/httpsnoop	v1.0.4	h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg=
dep	github.com/fxamacker/cbor/v2	v2.9.0	h1:NpKPmjDBgUfBms6tr6JZkTHtfFGcMKsw3eGcmD/sapM=
dep	github.com/gaissmai/bart	v0.26.0	h1:xOZ57E9hJLBiQaSyeZa9wgWhGuzfGACgqp4BE77OkO0=
dep	github.com/go-chi/chi/v5	v5.2.3	h1:WQIt9uxdsAbgIYgid+BpYc+liqQZGMHRaUwp0JUcvdE=
dep	github.com/go-jose/go-jose/v3	v3.0.4	h1:Wp5HA7bLQcKnf6YYao/4kpRpVMp/yf6+pJKV8WFSaNY=
dep	github.com/go-jose/go-jose/v4	v4.1.3	h1:CVLmWDhDVRa6Mi/IgCgaopNosCaHz7zrMeF9MlZRkrs=
dep	github.com/go-logr/logr	v1.4.3	h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI=
dep	github.com/go-logr/stdr	v1.2.2	h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
dep	github.com/go-sql-driver/mysql	v1.9.3	h1:U/N249h2WzJ3Ukj8SowVFjdtZKfu9vlLZxjPXV1aweo=
dep	github.com/gofrs/uuid/v5	v5.4.0	h1:EfbpCTjqMuGyq5ZJwxqzn3Cbr2d0rUZU7v5ycAk/e/0=
dep	github.com/golang-jwt/jwt/v5	v5.3.0	h1:pv4AsKCKKZuqlgs5sUmn4x8UlGa0kEVt/puTpKx9vvo=
dep	github.com/golang/protobuf	v1.5.4	h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
dep	github.com/golang/snappy	v1.0.0	h1:Oy607GVXHs7RtbggtPBnr2RmDArIsAefDwvrdWvRhGs=
dep	github.com/google/brotli/go/cbrotli	v1.1.0	h1:YwHD/rwSgUSL4b2S3ZM2jnNymm+tmwKQqjUIC63nmHU=
dep	github.com/google/cel-go	v0.26.1	h1:iPbVVEdkhTX++hpe3lzSk7D3G3QSYqLGoHOcEio+UXQ=
dep	github.com/google/certificate-transparency-go	v1.3.2	h1:9ahSNZF2o7SYMaKaXhAumVEzXB2QaayzII9C8rv7v+A=
dep	github.com/google/go-tpm	v0.9.7	h1:u89J4tUUeDTlH8xxC3CTW7OHZjbjKoHdQ9W7gCUhtxA=
dep	github.com/google/go-tspi	v0.3.0	h1:ADtq8RKfP+jrTyIWIZDIYcKOMecRqNJFOew2IT0Inus=
dep	github.com/google/s2a-go	v0.1.9	h1:LGD7gtMgezd8a/Xak7mEWL0PjoTQFvpRudN895yqKW0=
dep	github.com/google/uuid	v1.6.0	h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
dep	github.com/googleapis/enterprise-certificate-proxy	v0.3.7	h1:zrn2Ee/nWmHulBx5sAVrGgAa0f2/R35S4DJwfFaUPFQ=
dep	github.com/googleapis/gax-go/v2	v2.16.0	h1:iHbQmKLLZrexmb0OSsNGTeSTS0HO4YvFOG8g5E4Zd0Y=
dep	github.com/gorilla/mux	v1.8.1	h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY=
dep	github.com/grpc-ecosystem/grpc-gateway/v2	v2.27.3	h1:NmZ1PKzSTQbuGHw9DGPFomqkkLWMC+vZCkfs+FHv1Vg=
dep	github.com/hetznercloud/hcloud-go/v2	v2.27.0	h1:SOGpAP3kQ6+aevB4Hxr63ukNsdYJjHhuWNB1C3NsiJo=
dep	github.com/huandu/xstrings	v1.5.0	h1:2ag3IFq9ZDANvthTwTiqSSZLjDc+BedvHPAp5tJy2TI=
dep	github.com/jackc/pgpassfile	v1.0.0	h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsIM=
dep	github.com/jackc/pgservicefile	v0.0.0-20240606120523-5a60cdf6a761	h1:iCEnooe7UlwOQYpKFhBabPMi4aNAfoODPEFNiAnClxo=
dep	github.com/jackc/pgx/v5	v5.7.6	h1:rWQc5FwZSPX58r1OQmkuaNicxdmExaEz5A2DO2hUuTk=
dep	github.com/jackc/puddle/v2	v2.2.2	h1:PR8nw+E/1w0GLuRFSmiioY6UooMp6KJv0/61nB7icHo=
dep	github.com/klauspost/compress	v1.18.2	h1:iiPHWW0YrcFgpBYhsA6D1+fqHssJscY/Tm/y2Uqnapk=
dep	github.com/klauspost/cpuid/v2	v2.3.0	h1:S4CRMLnYUhGeDFDqkGriYKdfoFlDnMtqTiI/sFzhA9Y=
dep	github.com/libdns/hetzner/v2	v2.0.1	h1:phsNc9er8JbVOCsytLG7VuMbCdTPsv+WWwNX1WCbk4Q=
dep	github.com/libdns/libdns	v1.1.1	h1:wPrHrXILoSHKWJKGd0EiAVmiJbFShguILTg9leS/P/U=
dep	github.com/manifoldco/promptui	v0.9.0	h1:3V4HzJk1TtXW1MTZMP7mdlwbBpIinw3HztaIlYthEiA=
dep	github.com/mattn/go-colorable	v0.1.14	h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE=
dep	github.com/mattn/go-isatty	v0.0.20	h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
dep	github.com/maypok86/otter/v2	v2.2.1	h1:hnGssisMFkdisYcvQ8L019zpYQcdtPse+g0ps2i7cfI=
dep	github.com/mgutz/ansi	v0.0.0-20200706080929-d51e80ef957d	h1:5PJl274Y63IEHC+7izoQE9x6ikvDFZS2mDVS3drnohI=
dep	github.com/mholt/acmez/v3	v3.1.4	h1:DyzZe/RnAzT3rpZj/2Ii5xZpiEvvYk3cQEN/RmqxwFQ=
dep	github.com/miekg/dns	v1.1.69	h1:Kb7Y/1Jo+SG+a2GtfoFUfDkG//csdRPwRLkCsxDG9Sc=
dep	github.com/mitchellh/copystructure	v1.2.0	h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw=
dep	github.com/mitchellh/go-ps	v1.0.0	h1:i6ampVEEF4wQFF+bkYfwYgY+F/uYJDktmvLPf7qIgjc=
dep	github.com/mitchellh/reflectwalk	v1.0.2	h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zxSIeXaQ=
dep	github.com/mschoch/smat	v0.2.0	h1:8imxQsjDm8yFEAVBe7azKmKSgzSkZXDuKkSq9374khM=
dep	github.com/munnerz/goautoneg	v0.0.0-20191010083416-a7dc8b61c822	h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=
dep	github.com/pbnjay/memory	v0.0.0-20210728143218-7b4eea64cf58	h1:onHthvaw9LFnH4t2DcNVpwGmV9E1BkGknEliJkfwQj0=
dep	github.com/pires/go-proxyproto	v0.8.1	h1:9KEixbdJfhrbtjpz/ZwCdWDD2Xem0NZ38qMYaASJgp0=
dep	github.com/pkg/errors	v0.9.1	h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
dep	github.com/prometheus/client_golang	v1.23.2	h1:Je96obch5RDVy3FDMndoUsjAhG5Edi49h0RJWRi/o0o=
dep	github.com/prometheus/client_model	v0.6.2	h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNwqPLxwZyk=
dep	github.com/prometheus/common	v0.67.4	h1:yR3NqWO1/UyO1w2PhUvXlGQs/PtFmoveVO0KZ4+Lvsc=
dep	github.com/prometheus/procfs	v0.19.2	h1:zUMhqEW66Ex7OXIiDkll3tl9a1ZdilUOd/F6ZXw4Vws=
dep	github.com/quic-go/qpack	v0.6.0	h1:g7W+BMYynC1LbYLSqRt8PBg5Tgwxn214ZZR34VIOjz8=
dep	github.com/quic-go/quic-go	v0.58.0	h1:ggY2pvZaVdB9EyojxL1p+5mptkuHyX5MOSv4dgWF4Ug=
dep	github.com/rs/cors	v1.11.1	h1:eU3gRzXLRK57F5rKMGMZURNdIG4EoAmX8k94r9wXWHA=
dep	github.com/rs/xid	v1.6.0	h1:fV591PaemRlL6JfRxGDEPl69wICngIQ3shQtzfy2gxU=
dep	github.com/russross/blackfriday/v2	v2.1.0	h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk=
dep	github.com/shopspring/decimal	v1.4.0	h1:bxl37RwXBklmTi0C79JfXCEBD1cqqHt0bbgBAGFp81k=
dep	github.com/shurcooL/sanitized_anchor_name	v1.0.0	h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo=
dep	github.com/sirupsen/logrus	v1.9.3	h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=
dep	github.com/slackhq/nebula	v1.9.7	h1:v5u46efIyYHGdfjFnozQbRRhMdaB9Ma1SSTcUcE2lfE=
dep	github.com/smallstep/certificates	v0.29.0	h1:f90szTKYTW62bmCc+qE5doGqIGPVxTQb8Ba37e/K8Zs=
dep	github.com/smallstep/cli-utils	v0.12.2	h1:lGzM9PJrH/qawbzMC/s2SvgLdJPKDWKwKzx9doCVO+k=
dep	github.com/smallstep/go-attestation	v0.4.4-0.20241119153605-2306d5b464ca	h1:VX8L0r8vybH0bPeaIxh4NQzafKQiqvlOn8pmOXbFLO4=
dep	github.com/smallstep/linkedca	v0.25.0	h1:txT9QHGbCsJq0MhAghBq7qhurGY727tQuqUi+n4BVBo=
dep	github.com/smallstep/nosql	v0.7.0	h1:YiWC9ZAHcrLCrayfaF+QJUv16I2bZ7KdLC3RpJcnAnE=
dep	github.com/smallstep/pkcs7	v0.2.1	h1:6Kfzr/QizdIuB6LSv8y1LJdZ3aPSfTNhTLqAx9CTLfA=
dep	github.com/smallstep/scep	v0.0.0-20250318231241-a25cabb69492	h1:k23+s51sgYix4Zgbvpmy+1ZgXLjr4ZTkBTqXmpnImwA=
dep	github.com/smallstep/truststore	v0.13.0	h1:90if9htAOblavbMeWlqNLnO9bsjjgVv2hQeQJCi/py4=
dep	github.com/spf13/cast	v1.10.0	h1:h2x0u2shc1QuLHfxi+cTJvs30+ZAHOGRic8uyGTDWxY=
dep	github.com/spf13/cobra	v1.10.2	h1:DMTTonx5m65Ic0GOoRY2c16WCbHxOOw6xxezuLaBpcU=
dep	github.com/spf13/pflag	v1.0.10	h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk=
dep	github.com/stoewer/go-strcase	v1.3.1	h1:iS0MdW+kVTxgMoE1LAZyMiYJFKlOzLooE4MxjirtkAs=
dep	github.com/tailscale/tscert	v0.0.0-20251216020129-aea342f6d747	h1:RnBbFMmodYzhC6adOjTbtUQXyzV8dcvKYbolzs6Qch0=
dep	github.com/unrolled/secure	v1.17.0	h1:Io7ifFgo99Bnh0J7+Q+qcMzWM6kaDPCA5FroFZEdbWU=
dep	github.com/urfave/cli	v1.22.17	h1:SYzXoiPfQjHBbkYxbew5prZHS1TOLT3ierW8SYLqtVQ=
dep	github.com/viccon/sturdyc	v1.1.5	h1:GLQDnsyKt3L/tpdWCIARIRefn+5DAyvqu+0irBwt+vk=
dep	github.com/x448/float16	v0.8.4	h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM=
dep	github.com/yosida95/uritemplate/v3	v3.0.2	h1:Ed3Oyj9yrmi9087+NczuL5BwkIc4wvTb5zIM+UJPGz4=
dep	github.com/yuin/goldmark	v1.7.13	h1:GPddIs617DnBLFFVJFgpo1aBfe/4xcvMc3SB5t/D0pA=
dep	github.com/yuin/goldmark-highlighting/v2	v2.0.0-20230729083705-37449abec8cc	h1:+IAOyRda+RLrxa1WC7umKOZRsGq4QrFFMYApOeHzQwQ=
dep	github.com/zeebo/blake3	v0.2.4	h1:KYQPkhpRtcqh0ssGYcKLG1JYvddkEA8QwCM/yBqhaZI=
dep	go.etcd.io/bbolt	v1.4.3	h1:dEadXpI6G79deX5prL3QRNP6JB8UxVkqo4UPnHaNXJo=
dep	go.opentelemetry.io/auto/sdk	v1.2.1	h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64=
dep	go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp	v0.64.0	h1:ssfIgGNANqpVFCndZvcuyKbl0g+UAVcbBcqGkG28H0Y=
dep	go.opentelemetry.io/contrib/propagators/autoprop	v0.64.0	h1:VVrb1ErDD0Tlh/0K0rUqjky1e8AekjspTFN9sU2ekaA=
dep	go.opentelemetry.io/contrib/propagators/aws	v1.39.0	h1:IvNR8pAVGpkK1CHMjU/YE6B6TlnAPGFvogkMWRWU6wo=
dep	go.opentelemetry.io/contrib/propagators/b3	v1.39.0	h1:PI7pt9pkSnimWcp5sQhUA9OzLbc3Ba4sL+VEUTNsxrk=
dep	go.opentelemetry.io/contrib/propagators/jaeger	v1.39.0	h1:Gz3yKzfMSEFzF0Vy5eIpu9ndpo4DhXMCxsLMF0OOApo=
dep	go.opentelemetry.io/contrib/propagators/ot	v1.39.0	h1:vKTve1W/WKPVp1fzJamhCDDECt+5upJJ65bPyWoddGg=
dep	go.opentelemetry.io/otel	v1.39.0	h1:8yPrr/S0ND9QEfTfdP9V+SiwT4E0G7Y5MO7p85nis48=
dep	go.opentelemetry.io/otel/exporters/otlp/otlptrace	v1.39.0	h1:f0cb2XPmrqn4XMy9PNliTgRKJgS5WcL/u0/WRYGz4t0=
dep	go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc	v1.39.0	h1:in9O8ESIOlwJAEGTkkf34DesGRAc/Pn8qJ7k3r/42LM=
dep	go.opentelemetry.io/otel/metric	v1.39.0	h1:d1UzonvEZriVfpNKEVmHXbdf909uGTOQjA0HF0Ls5Q0=
dep	go.opentelemetry.io/otel/sdk	v1.39.0	h1:nMLYcjVsvdui1B/4FRkwjzoRVsMK8uL/cj0OyhKzt18=
dep	go.opentelemetry.io/otel/trace	v1.39.0	h1:2d2vfpEDmCJ5zVYz7ijaJdOF59xLomrvj7bjt6/qCJI=
dep	go.opentelemetry.io/proto/otlp	v1.9.0	h1:l706jCMITVouPOqEnii2fIAuO3IVGBRPV5ICjceRb/A=
dep	go.step.sm/crypto	v0.75.0	h1:UAHYD6q6ggYyzLlIKHv1MCUVjZIesXRZpGTlRC/HSHw=
dep	go.uber.org/automaxprocs	v1.6.0	h1:O3y2/QNTOdbF+e/dpXNNW7Rx2hZ4sTIPyybbxyNqTUs=
dep	go.uber.org/multierr	v1.11.0	h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
dep	go.uber.org/zap	v1.27.1	h1:08RqriUEv8+ArZRYSTXy1LeBScaMpVSTBhCeaZYfMYc=
dep	go.uber.org/zap/exp	v0.3.0	h1:6JYzdifzYkGmTdRR59oYH+Ng7k49H9qVpWwNSsGJj3U=
dep	go.yaml.in/yaml/v2	v2.4.3	h1:6gvOSjQoTB3vt1l+CU+tSyi/HOjfOjRLJ4YwYZGwRO0=
dep	go.yaml.in/yaml/v3	v3.0.4	h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc=
dep	golang.org/x/crypto	v0.46.0	h1:cKRW/pmt1pKAfetfu+RCEvjvZkA9RimPbh7bhFjGVBU=
dep	golang.org/x/crypto/x509roots/fallback	v0.0.0-20251210140736-7dacc380ba00	h1:qObov2/X4yIpr98j5t6samg3mMF12Rl4taUJd1rWj+c=
dep	golang.org/x/exp	v0.0.0-20251219203646-944ab1f22d93	h1:fQsdNF2N+/YewlRZiricy4P1iimyPKZ/xwniHj8Q2a0=
dep	golang.org/x/net	v0.48.0	h1:zyQRTTrjc33Lhh0fBgT/H3oZq9WuvRR5gPC70xpDiQU=
dep	golang.org/x/oauth2	v0.34.0	h1:hqK/t4AKgbqWkdkcAeI8XLmbK+4m4G5YeQRrmiotGlw=
dep	golang.org/x/sync	v0.19.0	h1:vV+1eWNmZ5geRlYjzm2adRgW2/mcpevXNg50YZtPCE4=
dep	golang.org/x/sys	v0.39.0	h1:CvCKL8MeisomCi6qNZ+wbb0DN9E5AATixKsvNtMoMFk=
dep	golang.org/x/term	v0.38.0	h1:PQ5pkm/rLO6HnxFR7N2lJHOZX6Kez5Y1gDSJla6jo7Q=
dep	golang.org/x/text	v0.32.0	h1:ZD01bjUt1FQ9WJ0ClOL5vxgxOI/sVCNgX1YtKwcY0mU=
dep	golang.org/x/time	v0.14.0	h1:MRx4UaLrDotUKUdCIqzPC48t1Y9hANFKIRpNx+Te8PI=
dep	google.golang.org/api	v0.258.0	h1:IKo1j5FBlN74fe5isA2PVozN3Y5pwNKriEgAXPOkDAc=
dep	google.golang.org/genproto/googleapis/api	v0.0.0-20251222181119-0a764e51fe1b	h1:uA40e2M6fYRBf0+8uN5mLlqUtV192iiksiICIBkYJ1E=
dep	google.golang.org/genproto/googleapis/rpc	v0.0.0-20251222181119-0a764e51fe1b	h1:Mv8VFug0MP9e5vUxfBcE3vUkV6CImK3cMNMIDFjmzxU=
dep	google.golang.org/grpc	v1.78.0	h1:K1XZG/yGDJnzMdd/uZHAkVqJE+xIDOcmdSFZkBUicNc=
dep	google.golang.org/protobuf	v1.36.11	h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE=
dep	gopkg.in/natefinch/lumberjack.v2	v2.2.1	h1:bBRl1b0OH9s/DuPhuXpNl+VtCaJXFZ5/uEFST95x9zc=
dep	gopkg.in/yaml.v3	v3.0.1	h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
dep	pkg.jsn.cam/caddy-defender	v0.10.0	h1:OvwrB/B1nOjfjtM90UVGxwB52PMJoCDsle1+6BxDMZw=
build	-buildmode=exe
build	-compiler=gc
build	-gcflags="all=-N -l"
build	CGO_ENABLED=1
build	CGO_CFLAGS="-ggdb3 -I/usr/local/include/php -I/usr/local/include/php/main -I/usr/local/include/php/TSRM -I/usr/local/include/php/Zend -I/usr/local/include/php/ext -I/usr/local/include/php/ext/date/lib"
build	CGO_CPPFLAGS="-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
build	CGO_CXXFLAGS=
build	CGO_LDFLAGS="-Wl,-O1 -pie -lm -lpthread -lxml2 -lsqlite3 -lxml2 -lsqlite3 -lxml2 -lxml2 -lxml2 -lxml2"
build	GOARCH=amd64
build	GOOS=linux
build	GOAMD64=v1