On Thu, Sep 15, 2022 at 05:30:11PM +0900, Kyotaro Horiguchi wrote:
> At Thu, 15 Sep 2022 01:26:15 -0500, Jaime Casanova 
> <jcasa...@systemguards.com.ec> wrote in 
> > On Tue, Sep 13, 2022 at 10:07:50PM -0500, Jaime Casanova wrote:
> > > On Tue, Sep 13, 2022 at 06:48:45PM +0900, Kyotaro Horiguchi wrote:
> > > > 
> > > > Another measure would be to add the region to wipe-out on reset to
> > > > PgStat_KindInfo, but it seems too much.. (attached)
> > > > 
> > > 
> > > This patch solves the problem, i didn't like the other solution because
> > > as you say it partly nullify the protection of the assertion.
> > > 
> > 
> > I talked too fast, while it solves the immediate problem the patch as is
> > causes other crashes.
> 
> Where did the crash happen?  Is it a bug introduced by it? Or does it
> root to other cause?
> 

Just compile and run the installcheck tests.

It fails at ./src/backend/utils/activity/pgstat_shmem.c:530 inside
pgstat_release_entry_ref() because it expects a "deadbeef", it seems to
be a magic variable but cannot find what its use is.

Attached a backtrace.

-- 
Jaime Casanova
Director de Servicios Profesionales
SystemGuards - Consultores de PostgreSQL
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
        set = {__val = {4194304, 140727848465760, 2, 6, 6808139, 
94494822015184, 
            4611686018427388799, 139771048516262, 0, 281470681751456, 0, 0, 0, 
0, 0, 0}}
        pid = <optimized out>
        tid = <optimized out>
        ret = <optimized out>
#1  0x00007f1efb762535 in __GI_abort () at abort.c:79
        save_stage = 1
        act = {__sigaction_handler = {sa_handler = 0x0, sa_sigaction = 0x0}, 
sa_mask = {__val = {
              0, 0, 0, 0, 0, 139771046014965, 2, 3559591060477507152, 
7018350264137834804, 
              94494822015184, 7003716880224747600, 0, 9726297134600432896, 
140727848466000, 0, 
              140727848466864}}, sa_flags = 1246535888, sa_restorer = 0x0}
        sigs = {__val = {32, 0 <repeats 15 times>}}
#2  0x000055f14ab8e280 in ExceptionalCondition (
    conditionName=0x55f14ad70420 "entry_ref->shared_stats->magic == 
0xdeadbeef", 
    errorType=0x55f14ad70073 "FailedAssertion", fileName=0x55f14ad702da 
"pgstat_shmem.c", 
    lineNumber=530) at assert.c:69
No locals.
#3  0x000055f14aa15a1e in pgstat_release_entry_ref (key=..., 
entry_ref=0x55f14bf71098, 
    discard_pending=false) at pgstat_shmem.c:530
        __func__ = "pgstat_release_entry_ref"
#4  0x000055f14aa15f68 in pgstat_release_matching_entry_refs 
(discard_pending=false, match=0x0, 
    match_data=0) at pgstat_shmem.c:699
        i = {cur = 255, end = 1, done = false}
        ent = 0x55f14bf450f0
#5  0x000055f14aa15fc0 in pgstat_release_all_entry_refs (discard_pending=false)
    at pgstat_shmem.c:715
No locals.
#6  0x000055f14aa15203 in pgstat_detach_shmem () at pgstat_shmem.c:238
No locals.
#7  0x000055f14aa0de82 in pgstat_shutdown_hook (code=0, arg=0) at pgstat.c:520
No locals.
#8  0x000055f14a9b2b27 in shmem_exit (code=0) at ipc.c:239
        __func__ = "shmem_exit"
#9  0x000055f14a9b29df in proc_exit_prepare (code=0) at ipc.c:194
        __func__ = "proc_exit_prepare"
#10 0x000055f14a9b2930 in proc_exit (code=0) at ipc.c:107
        __func__ = "proc_exit"
#11 0x000055f14a9ed1a0 in PostgresMain (dbname=0x55f14bed0e90 "regression", 
    username=0x55f14bed0e68 "jcasanov") at postgres.c:4795
        firstchar = 88
        input_message = {data = 0x55f14bea4900 "", len = 0, maxlen = 1024, 
cursor = 0}
        local_sigjmp_buf = {{__jmpbuf = {0, -2769250407385151644, 
94494822015184, 
              140727848468560, 0, 0, -2769250407297071260, 
-8248146431642187932}, 
            __mask_was_saved = 1, __saved_mask = {__val = {4194304, 
8534995794563506275, 15679, 
                15680, 979, 18446744073709551536, 0, 0, 139771044971635, 3904, 
0, 
                140727848467536, 94494822015184, 140727848468560, 
94494829323263, 15616}}}}
        send_ready_for_query = false
        idle_in_transaction_timeout_enabled = false
        idle_session_timeout_enabled = false
        __func__ = "PostgresMain"
#12 0x000055f14a924a1d in BackendRun (port=0x55f14becad20) at postmaster.c:4504
No locals.
#13 0x000055f14a924369 in BackendStartup (port=0x55f14becad20) at 
postmaster.c:4232
        bn = 0x55f14bec7e80
        pid = 0
        __func__ = "BackendStartup"
#14 0x000055f14a9207ae in ServerLoop () at postmaster.c:1806
        port = 0x55f14becad20
        i = 2
        rmask = {fds_bits = {128, 0 <repeats 15 times>}}
        selres = 1
        now = 1663253503
        readmask = {fds_bits = {224, 0 <repeats 15 times>}}
        nSockets = 8
        last_lockfile_recheck_time = 1663253479
        last_touch_time = 1663253239
        __func__ = "ServerLoop"
#15 0x000055f14a91fffd in PostmasterMain (argc=5, argv=0x55f14be9dec0) at 
postmaster.c:1478
        opt = -1
        status = 0
        userDoption = 0x55f14bec1900 "data1"
        listen_addr_saved = true
        i = 64
        output_config_variable = 0x0
        __func__ = "PostmasterMain"
#16 0x000055f14a81f3fc in main (argc=5, argv=0x55f14be9dec0) at main.c:202
        do_check_root = true

Reply via email to