Skip to content

Conversation

@TreeHunter9
Copy link
Contributor

Prevents SIGFAULT by immediately stopping blob processing when a stop signal is received during restore operations.
This can happen when restoring in multiple threads. The problem in RestoreRelationTask::checkSpace where we don't check the result of getCleanBuffer() for nullptr and it causes corruption in IOBuffer linked list. This can lead to a sigfault in RestoreRelationTask::read_blob() where the checkSpace() function is called multiple times.

This was already fixed in v6 (commit), but I don't think the main purpose of that commit was to fix specifically this problem.

Prevents SIGFAULT by immediately terminating blob processing
when a stop signal is received during restore operations.
@hvlad
Copy link
Member

hvlad commented Apr 21, 2025

Hmm... looks like the whole fix for #8444 should be backported into v5, not just this part.
@AlexPeshkoff, what is your opinion ?

@AlexPeshkoff
Copy link
Member

Hmm... looks like the whole fix for #8444 should be backported into v5, not just this part. @AlexPeshkoff, what is your opinion ?

Agreed. Certainly backport it.

@TreeHunter9
Copy link
Contributor Author

Hmm... looks like the whole fix for #8444 should be backported into v5, not just this part. @AlexPeshkoff, what is your opinion ?

Agreed. Certainly backport it.

Created #8574 with backport (there was a slight misunderstanding, I thought you were going to backport it).

@AlexPeshkoff AlexPeshkoff merged commit ee6a229 into FirebirdSQL:v5.0-release May 27, 2025
24 checks passed
@TreeHunter9 TreeHunter9 deleted the v5.0-release-gbak-restore-crash-on-blob-read branch May 27, 2025 13:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants