Thread

  1. Re: [BUG] CRASH: ECPGprepared_statement() and ECPGdeallocate_all() when connection is NULL

    Andrew Dunstan <andrew@dunslane.net> — 2026-05-06T15:50:04Z

    On 2026-05-06 We 10:58 AM, Tom Lane wrote:
    > Andrew Dunstan <andrew@dunslane.net> writes:
    >> Attached is a patch with the fix, courtesy of claude. It's a slight
    >> behaviour change:
    > Yeah.  So we could either do something like this, or say that the
    > test case is buggy and needs to provide its own mutexes, per the
    > existing comment
    >
    > -         * if no connection in TSD for this thread, get the global default
    > -         * connection and hope the user knows what they're doing (i.e. using
    > -         * their own mutex to protect that connection from concurrent accesses
    >
    > On the whole I think I favor the behavior change.  We might get some
    > complaints, but it just seems a lot safer to redefine it like this.
    
    
    I agree.
    
    
    >
    > Either way, it seems like some documentation adjustments are called
    > for.
    >
    > As far as the patch itself goes, I'd be inclined to pull the
    > preparatory step
    >
    >           ecpg_pthreads_init();    /* ensure actual_connection_key is valid */
    >
    > into the new ecpg_default_connection() subroutine, especially since
    > its proposed comment doesn't mention that prerequisite.
    >
    > 			
    
    
    Right.
    
    
    Given the lack of field complaints, maybe we should wait until after 
    next week's releases?
    
    
    cheers
    
    
    andrew
    
    
    --
    Andrew Dunstan
    EDB: https://www.enterprisedb.com