[GNC] Sluggish after 5.13

Sherlock sh025622 at gmail.com
Wed Oct 29 23:42:36 EDT 2025


I have filed bug: https://bugs.gnucash.org/show_bug.cgi?id=799682
and pull request: https://github.com/Gnucash/gnucash/pull/2144

Regards,

Sherlock

On 10/29/25 8:02 PM, Sherlock wrote:
> I've been trying to understand why this hasn't been an issue on the 
> other platforms that have been on libdbi 0.9.1 for sometime.  The 
> generic bug was introduced 2 years ago (commit b011c81). I suspect the 
> issue isn't seen on Linux where libdbi is installed in the system 
> location or on a Mac build machine.  I think the issue should appear on 
> non-build Macs but, of course, the issue won't be apparent to a user 
> unless they aren't using the xml format.
> 
> Regards,
> 
> Sherlock
> 
> On 10/29/25 6:54 PM, Sherlock wrote:
>> I maybe wrong about the c:\libdbi\lib\dbd folder as there are compile 
>> time definition that will override the location which appears to be 
>> something like /mingw32/lib/dbd but that should still typically miss 
>> in a typical user's gnucash installation.
>>
>> Setting GNC_DBD_DIR to something like C:\Program Files 
>> (x86)\gnucash\lib\dbd should work around the issue.
>>
>> Regards,
>>
>> Sherlock
>>
>> On 10/29/25 4:32 PM, Sherlock wrote:
>>> Hi John,
>>>
>>> I suspect the Windows nightly builds have not been properly 
>>> supporting databases since libdbi was updated to 0.9.1 on October 5th 
>>> unless the drivers are in the c:\libdbi\lib\dbd folder or the folder 
>>> to which the GNC_DBD_DIR environment variable is set.
>>>
>>> For example, attempt to save as sqlite3.
>>>
>>> It appears there is a generic bug in gnc_module_init_backend_dbi() 
>>> when HAVE_LIBDBI_R is defined.  Specifically, when the initial 
>>> dbi_initialize_r() returns no drivers, the dbi_instance variable is 
>>> still set.
>>>
>>> So, instead of:
>>>
>>> #if HAVE_LIBDBI_R
>>>          if (dbi_instance)
>>>              return;
>>> #endif
>>>
>>> the code should be:
>>>
>>> #if HAVE_LIBDBI_R
>>>          if (dbi_instance)
>>>          {
>>>              dbi_shutdown_r (dbi_instance);
>>>              dbi_instance = nullptr;
>>>          }
>>> #endif
>>>
>>>
>>> Regards,
>>>
>>> Sherlock
>>>




More information about the gnucash-user mailing list