-
Notifications
You must be signed in to change notification settings - Fork 109
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
Fix libcurl upgrade breaking cloud backups #244
base: 3_5
Are you sure you want to change the base?
Fix libcurl upgrade breaking cloud backups #244
Conversation
- set only required http methods
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
compiled on DEBIAN 10 - working with latest libcurl4/curl now - would close #213 (for deb10)
I've rebuilt the amanda packages with these changes in for Ubuntu 24.04, and it mostly works (admitted on a small test setup). The only time it does not work, is when it's time to overwrite a tape, the taper debug log then shows the following:
I think this is when the files are deleted that are related to the tape amanda will write to. The interesting thing is that this deletion seems to work, despite the error. A subsequent Let me add that the amanda version on Ubuntu 24.04 is 3.5.1 (with some Ubuntu-specific patches). |
After applying the above mentioned commit, I observed the exact same behaviour when amdump starts creating new files after deletion. I guessed it has something to do with the wrong HTTP method. After investigating the code, the libcurl docs, I can't remember exactly, please correct me, but as I understood, the http method could not be changed anymore in the request object of libcurl. Unless you do a reset. Therefore, despite the warning in device-src/s3.c:
I applied following addition to the code, build it again, and it works:
|
tested on ubuntu 22.04
certain PUT requests were being set as GET, due to multiple options being set at the same time. this caused a signature mis-match error since there was PUT verb in headers which was signed, and a GET request was being made by libcurl, it is now fixed by setting only required http method.