Hello Yibin and Frank, On 19/09 05:03, Z Y wrote: > The global variable is ngx_cycle in openresty/nginx, openresty is actually > nginx with a lua extension. > The steps to reproduce this bug is as follows, the scripts used are > attached: > > > wget https://openresty.org/download/openresty-1.19.3.2.tar.gz > > tar -xf openresty-1.19.3.2.tar.gz > > cd openresty-1.19.3.2 > > ./configure --with-cc-opt="-O0 -g" > > make -j12 > > make install > > /usr/local/openresty/bin/resty -j off nest-call.lua 100000000000 & > > stap --disable-cache ./openresty.stp -x $(pgrep -n nginx) -v
[...] I can reproduce the regression. The openresty.stp script provided by Yibin works fine with Linux 5.10 from Debian Bullseye, while it fails with the 5.19 kernel from testing/sid. In both cases I've used systemtap 4.7-1 from testing/sid. Here's the output with the Bullseye kernel: $ uname -a Linux ariel 5.10.0-18-amd64 #1 SMP Debian 5.10.140-1 (2022-09-02) x86_64 GNU/Linux $ sudo stap --disable-cache ~/Downloads/openresty.stp -x $(pgrep -n nginx) WARNING: Kernel function symbol table missing [man warning::symbols] WARNING: nginx pid 3224 target 3224 WARNING: ngx_cycle 0x55caf7ef1b60 WARNING: module_index 54 WARNING: lmcf 0x55caf7f048b8 WARNING: ngx lua 0x7fcfe451b380 And the failure with with the 5.19 kernel from testing/sid: $ uname -a Linux ariel 5.19.0-1-amd64 #1 SMP PREEMPT_DYNAMIC Debian 5.19.6-1 (2022-09-01) x86_64 GNU/Linux $ sudo stap --disable-cache ~/Downloads/openresty.stp -x $(pgrep -n nginx) WARNING: Kernel function symbol table missing [man warning::symbols] warning: the compiler differs from the one used to build the kernel The kernel was built by: gcc-11 (Debian 11.3.0-5) 11.3.0 You are using: gcc-11 (Debian 11.3.0-6) 11.3.0 WARNING: nginx pid 5978 target 5978 ERROR: read fault [man error::fault] at 0x5602ca215380 near operator '@var' at /home/ema/Downloads/openresty.stp:18:17 WARNING: Number of errors: 1, skipped probes: 0 WARNING: /usr/bin/staprun exited with status: 1 Pass 5: run failed. [man error::pass5] Tip: /usr/share/doc/systemtap/README.Debian should help you get started. I've tried booting the 5.19 kernel with all possible values for preempt=, namely "none", "voluntary", and "full" to no avail. The 5.19 kernel has this to say when the script fails: [ 60.484129] kprobes: kprobe jump-optimization is disabled. All kprobes are based on software breakpoint. [ 60.548807] stap_3811 (openresty.stp): systemtap: 4.7/0.187, base: ffffffffc1153000, memory: 388data/52text/129ctx/262246net/324alloc kb, probes: 2