-
Notifications
You must be signed in to change notification settings - Fork 1
Keep the initial values consistent to avoid assertion errors #2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
postgres@zxm-VMware-Virtual-Platform:~/code/16/contrib/pg_uprobe$ pg_ctl restart
waiting for server to shut down.... done
server stopped
waiting for server to start....2025-07-18 11:48:21.554 CST [22566] LOG: message buffer requested
2025-07-18 11:48:21.573 CST [22566] LOG: message buffer inited
2025-07-18 11:48:21.575 CST [22566] LOG: redirecting log output to logging collector process
2025-07-18 11:48:21.575 CST [22566] HINT: Future log output will appear in directory "log".
done
server started |
Thanks for reporting the issue and suggesting a patch. |
Ok, I'm really looking forward to it. I'm wondering why something is abnormal here postgres@zxm-VMware-Virtual-Platform:~/code/16/contrib/pg_uprobe$ psql
psql (16.9)
Type "help" for help.
postgres=# \dx
List of installed extensions
Name | Version | Schema | Description
-----------+---------+------------+-------------------------------------------
pg_duckdb | 1.0.0 | public | DuckDB Embedded in Postgres
pg_uprobe | 1.0 | public | Measure postgres functions execution time
plpgsql | 1.0 | pg_catalog | PL/pgSQL procedural language
(3 rows)
postgres=# select start_session_trace(pg_backend_pid());
start_session_trace
---------------------
(1 row)
postgres=# select * from pg_class;
server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.
The connection to the server was lost. Attempting reset: Failed.
The connection to the server was lost. Attempting reset: Failed.
!?> \q
postgres@zxm-VMware-Virtual-Platform:~/code/16/contrib/pg_uprobe$ cat $PGDATA/log/postgresql-2025-07-18_143519.log
2025-07-18 14:35:19.659 CST [36202] LOG: starting PostgreSQL 16.9 on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0, 64-bit
2025-07-18 14:35:19.659 CST [36202] LOG: listening on IPv4 address "127.0.0.1", port 5432
2025-07-18 14:35:19.661 CST [36202] LOG: listening on Unix socket "/tmp/.s.PGSQL.5432"
2025-07-18 14:35:19.665 CST [36206] LOG: database system was shut down at 2025-07-18 14:35:19 CST
2025-07-18 14:35:19.665 CST [36207] LOG: can't load from empty config
2025-07-18 14:35:19.670 CST [36202] LOG: database system is ready to accept connections
2025-07-18 14:35:21.574 CST [36212] LOG: can't load from empty config
2025-07-18 14:35:21.574 CST [36212] LOG: uprobes set correctly
TRAP: failed Assert("currentTraceLock != NULL"), File: "src/trace_lock_on_buffers.c", Line: 136, PID: 36212
postgres: postgres postgres [local] SELECT(ExceptionalCondition+0xbb)[0x5bd6c4523b99]
/u01/app/halo/product/dbms/16/lib/postgresql/pg_uprobe.so(+0x25757b)[0x78279f85757b]
/u01/app/halo/product/dbms/16/lib/postgresql/pg_uprobe.so(+0x251992)[0x78279f851992]
/u01/app/halo/product/dbms/16/lib/postgresql/pg_uprobe.so(+0x27c66c)[0x78279f87c66c]
[0x7827a30c716f]
2025-07-18 14:35:28.812 CST [36202] LOG: server process (PID 36212) was terminated by signal 6: 已中止
2025-07-18 14:35:28.812 CST [36202] DETAIL: Failed process was running: select * from pg_class;
2025-07-18 14:35:28.812 CST [36202] LOG: terminating any other active server processes
2025-07-18 14:35:28.813 CST [36214] FATAL: the database system is in recovery mode
2025-07-18 14:35:28.814 CST [36202] LOG: all server processes terminated; reinitializing
2025-07-18 14:35:28.828 CST [36202] LOG: message buffer inited
2025-07-18 14:35:28.829 CST [36215] LOG: database system was interrupted; last known up at 2025-07-18 14:35:19 CST
2025-07-18 14:35:28.842 CST [36215] LOG: database system was not properly shut down; automatic recovery in progress
2025-07-18 14:35:28.844 CST [36215] LOG: invalid record length at 0/833DFD08: expected at least 24, got 0
2025-07-18 14:35:28.844 CST [36215] LOG: redo is not required
2025-07-18 14:35:28.846 CST [36216] LOG: checkpoint starting: end-of-recovery immediate wait
2025-07-18 14:35:28.850 CST [36216] LOG: checkpoint complete: wrote 3 buffers (0.0%); 0 WAL file(s) added, 0 removed, 0 recycled; write=0.002 s, sync=0.001 s, total=0.005 s; sync files=2, longest=0.001 s, average=0.001 s; distance=0 kB, estimate=0 kB; lsn=0/833DFD08, redo lsn=0/833DFD08
2025-07-18 14:35:28.853 CST [36202] LOG: database system is ready to accept connections
2025-07-18 14:35:28.855 CST [36220] LOG: can't load from empty config |
Hi, it's our fault that in this scenario PostgreSQL crashes. As I said we are about to commit a big path next week. One of many changes is fixing this problem. Please wait till we commit this patch, so you can use better version of this extension. For now you can build PostgreSQL without Asserts (don't use '--enable-cassert' flag for ./configure) and this will fix the problem. (https://www.postgresql.org/docs/current/install-make.html#CONFIGURE-OPTION-ENABLE-CASSERT) |
Ok. Thank you very much for your answer. |
#1