Issue Details (XML | Word | Printable)

Key: CORE-6096
Type: Bug Bug
Status: Open Open
Priority: Blocker Blocker
Assignee: Unassigned
Reporter: Sławomir Zalewski
Votes: 0
Watchers: 4
Operations

If you were logged in you would be able to see more operations.
Firebird Core

Embedded connection active during 60sec after database close

Created: 09/Jul/19 10:44 AM   Updated: 13/Nov/19 04:24 PM
Component/s: None
Affects Version/s: 3.0.4
Fix Version/s: None

Environment: Windows 10, Delphi application, Firebird3 embedded, ICU57 library

QA Status: No test


 Description  « Hide
1. My application works with Firebird embedded.
2. I close connection - IBDatabase1.Connected := False;
3. I make backup of the database and close that connection.
4. I open database.
5. After 60 sec, if I try to do anything with database, I receive message "Connection shutdown".

If I wait 60 sec after steps 2 and 3, everything works fine.

I checked version 4.0 Beta 1 - it works OK without waiting.

 All   Comments   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Vlad Khorsun added a comment - 12/Aug/19 08:06 AM
Is it reproducible with isql ?

Sławomir Zalewski added a comment - 12/Aug/19 06:01 PM
- I didn't try, but I've checked that:
1. ICU library is not important
2. problem with FB v.3 (the problem doesn't occur for 4.0 Beta 1) is only after using TIBBackupService control for backup the database
3. I can use gbak instead, but have to close the database to make backup. This is not convenient way to perform temporary backups.

Vlad Khorsun added a comment - 13/Aug/19 07:48 AM
1. Sure :)
2. Sounds strange. Does TIBBackupService unload fbclient.dll ?
3. Read FB3 Release Notes about new architecture and how to change ServerMode from Super to [Super]Classic

Sławomir Zalewski added a comment - 13/Aug/19 03:13 PM
I use Windows embedded local server - copy of fbclient.dll as gds32.dll.
Im affraid that 3.x version of fbclient.dll could be unloaded after 60 sec.

Vlad Khorsun added a comment - 05/Nov/19 04:52 PM
Reproducible test case needed

Sławomir Zalewski added a comment - 10/Nov/19 08:50 AM
Excuse me if this form is not correct.
I' ve created SourceForge account with files to be downloaded:
https://sourceforge.net/projects/firebirdcore-6096/files/

There are:
- Delphi2010 simple application source code. Application name is EmbeddedBackup
- compiled EmbeddedBackup.exe with simple test database (v.3) and Firebird Embedded 3 files
- compiled EmbeddedBackup.exe with simple test database (v.4) and Firebird Embedded 4 files
and
- screen with error message - Firebird Embedded 3
- screen without errors - Firebird Embedded 4

* test database (v.4) I created from backuped test database (v.3)

Vlad Khorsun added a comment - 13/Nov/19 11:40 AM
The problem is that application loads gds32.dll but all other components (engine12.dll, etc) uses fbclient.dll.
Therefore two instances of Dispatcher is created and they are not coordinated with each other.

Application must use fbclient.dll to make embedded engine works properly.

Sławomir Zalewski added a comment - 13/Nov/19 04:24 PM
But why that problem has disappeared from Firebird 4?
For Delphi and IBX library it is a serious problem. I've found solution:
https://www.mwasoftware.co.uk/15-blog/84-using-firebird-with-delphi-2005-and-later
but haven't tested it yet.