Skip to content
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

Ensure providers compatibility across versions [CORE6072] #6322

Closed
firebird-automations opened this issue Jun 1, 2019 · 9 comments
Closed

Comments

@firebird-automations
Copy link
Collaborator

Submitted by: Emil Totev (emilt)

Jira_subtask_outward CORE6091
Jira_subtask_outward CORE6093
Depends on CORE6230

Votes: 1

In general, provider plugins should be compatible across Firebird versions.

The particular case for the moment is that Engine12.dll from Firebird 3 should be compatible with (at least) Firebird 4. Since now providers are hard-linked to ODS versions, this is the way to provide the pre-version3 feature of new servers working with old ODS databases, which is especially important when a server with multiple databases has to be upgraded.

So basically adding to a databases.conf entry in Firebird 4 like
{ Providers = Engine12 }
should work. At the moment, there are at least two issues:

* "Missing security context", which can be worked-around by adding a SecurityDatabase entry and then a connection can be made,
* "Interface IStatement version too old: expected 4, found 3" when attempting to execute any SQL statement.

Commits: 04c189c 7bf9b85 f4366a3 2e9df43 2d233da 326b546 0ed7a46 d219d25

====== Test Details ======

Can not use different .conf and restart server before some .fbt will be checked (at least on current version of fbtest framework).

@firebird-automations
Copy link
Collaborator Author

Modified by: Emil Totev (emilt)

Version: 4.0 Beta 1 [ 10750 ]

Version: 3.0.4 [ 10863 ]

description: In general, provider plugins should be compatible across Firebird versions.

The particular case for the moment is that Engine12.dll from Firebird 3 should be compatible with (at least) Firebird 4. Since now providers are hard-linked to ODS versions, this is the way to provide the pre-version3 feature of new servers working with old ODS databases, which is especially important when a server with multiple databases has to be upgraded.

So basically adding to a databases.conf entry in Firebird 4 like
{ Providers = Engine12 }
should work. At the moment, there are at least two issues:

* "Missing security context", which can be worked-around by adding a SecurityDatabase entry and then a connection can be made,
* "Interface IStatement version too old: expected 4, found 3" when attempting to execute any SQL statement.

@firebird-automations
Copy link
Collaborator Author

Modified by: @AlexPeshkoff

assignee: Alexander Peshkov [ alexpeshkoff ]

@firebird-automations
Copy link
Collaborator Author

Commented by: @AlexPeshkoff

Emil, I've fixed issues fiund by you. Moreover - to start using Engine12 it's enough to have line
Providers = Remote,Engine13,Engine12,Loopback
in firebird.conf, no need to tune Providers per database explicitly.

But there are some more issues, I've found 2 more when testing 2-provider configuration. I will proceed with them and report here.

@firebird-automations
Copy link
Collaborator Author

Commented by: Emil Totev (emilt)

Thanks!
Do I need latest snapshots for both 3.0 and 4.0 to test? Or new engine12.dll is sufficient?

@firebird-automations
Copy link
Collaborator Author

Commented by: @AlexPeshkoff

You need both latest snapshots. And taking into account that fixes were committed not long ago you need snapshot later than 28-Jun-2019.

@firebird-automations
Copy link
Collaborator Author

Modified by: @AlexPeshkoff

status: Open [ 1 ] => Resolved [ 5 ]

resolution: Fixed [ 1 ]

Fix Version: 3.0.5 [ 10885 ]

Fix Version: 4.0 Beta 2 [ 10888 ]

@firebird-automations
Copy link
Collaborator Author

Modified by: @pavel-zotov

status: Resolved [ 5 ] => Resolved [ 5 ]

QA Status: No test => Cannot be tested

Test Details: Can not use different .conf and restart server before some .fbt will be checked (at least on current version of fbtest framework).

@firebird-automations
Copy link
Collaborator Author

Modified by: @pavel-zotov

status: Resolved [ 5 ] => Closed [ 6 ]

@firebird-automations
Copy link
Collaborator Author

Modified by: @AlexPeshkoff

Link: This issue depends on CORE6230 [ CORE6230 ]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment