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

Blob corruption in FB4.0.3 (embedded) #7772

Closed
TommiPrami opened this issue Sep 30, 2023 · 7 comments
Closed

Blob corruption in FB4.0.3 (embedded) #7772

TommiPrami opened this issue Sep 30, 2023 · 7 comments

Comments

@TommiPrami
Copy link
Contributor

Short summary,

  • Take a backup with Fb259 embedded.
  • Restore it using:
    • FB 4.0.2 embedded, all seems to be OK.
    • FB 4.0.3 embedded, blobs get corrupted.

Tested with FB 4.0.3 with 42 different test databases I could (easily) get my hands of, and all those suffered various degrees of corruption. Could not reproduce this with super simple test case, if I remember correctly that I tested it on top of FB 4.0.3.

I'll send test case to Vlad Khorsun.

@TommiPrami TommiPrami changed the title Bloc corruption in FB4.0.3 (embeded) Blob corruption in FB4.0.3 (embedded) Sep 30, 2023
@TommiPrami
Copy link
Contributor Author

Link to a Test case sent...

@hvlad hvlad self-assigned this Sep 30, 2023
@hvlad
Copy link
Member

hvlad commented Sep 30, 2023

Check next snapshot build, please

@TommiPrami
Copy link
Contributor Author

TommiPrami commented Oct 2, 2023

Was this a general issue in FB engine or just in GBak, or even more specific, restoring from fb25x backup (or similar, from old backup)?

In other words, in which situations this bug appeared?

Info determines actions needed for production.

Tested with snapshot, and works very well. Thanks for lightning fast fix.

@hvlad
Copy link
Member

hvlad commented Oct 2, 2023

The bug was in the engine and related to the new batch feature and its handling of stream blobs of size between 64KB and 128KB.
Restore uses batches for remote database access and for some cases of embedded/services usage.
Patch for #7611 makes a more cases when batches is used for embedded/services usage, therefore v4.0.2 works correctly in your case and v4.0.3 - does not.

@mrotteveel
Copy link
Member

I think that is serious enough to require a 4.0.4 or a 4.0.3 update 1 release to be honest. What do you think @dyemanov?

@TommiPrami
Copy link
Contributor Author

TommiPrami commented Oct 2, 2023 via email

@dyemanov
Copy link
Member

dyemanov commented Oct 2, 2023

I think that is serious enough to require a 4.0.4 or a 4.0.3 update 1 release to be honest. What do you think @dyemanov?

We already have 12 bugfixes for the v4 branch, so 4.0.4 would be appropriate, I suppose.

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