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

Issue with mc client specifically for armhf #3825

Open
probal31 opened this issue Oct 7, 2021 · 8 comments
Open

Issue with mc client specifically for armhf #3825

probal31 opened this issue Oct 7, 2021 · 8 comments

Comments

@probal31
Copy link

probal31 commented Oct 7, 2021

Hello Team,

I have been working to setup a ci environment for building AppImage and push the artifacts to minio bucket.
This works pretty well for amd64 and arm64 environments.

But for armhf the behavior is somewhat weird while uploading the artifacts to minio bucket.
Whereas the logs are always clear and does not show any error but in the minio bucket the objects are missing.

There are basically 2 scenarios.

Scenario 1

When the bucket is not already present, then in that scenario it seems the files are not uploaded and the bucket itself behaves as an object. I mean on clicking the bucket folder in the minio console the page that opens up is the one that is actually opened while clicking an object and not a folder/bucket. Please find the related logs below.

$ du -h *.AppImage || true
70M	vvave-nightly-20211007-git+e80eaae-armhf.AppImage
$ du -h *.deb || true
du: cannot access '*.deb': No such file or directory
$ echo "Pushing Artifacts"
Pushing Artifacts
$ export BUCKET_DATE="$(date +'%Y-%m-%d')"
$ if [ $(uname -m) = 'x86_64' ]; then export MINIO_ARCH=amd64; elif [ $(uname -m) = 'aarch64' ]; then export MINIO_ARCH=arm64; elif [[ $(uname -m) = "armv7"* || $(uname -m) = "armhf" ]]; then export MINIO_ARCH=armhf; fi
$ if [[ "$BUILD_TYPE" == 'nightly' || "$BUILD_TYPE" == 'devel' || "$BUILD_TYPE" == "beta"* ]]; then mc rm --recursive --force "nx/maui/$BUILD_TYPE/$MINIO_ARCH/" || true; mc mb "nx/maui/$BUILD_TYPE/$MINIO_ARCH/" || true; mc cp *amd64*.AppImage "nx/maui/$BUILD_TYPE/$MINIO_ARCH/" || true; mc cp *amd64*.deb "nx/maui/$BUILD_TYPE/$MINIO_ARCH/" || true; mc cp *arm64*.AppImage "nx/maui/$BUILD_TYPE/$MINIO_ARCH/" || true; mc cp *arm64*.deb "nx/maui/$BUILD_TYPE/$MINIO_ARCH/" || true; mc cp *armhf*.AppImage "nx/maui/$BUILD_TYPE/$MINIO_ARCH/" || true; mc cp *armhf*.deb "nx/maui/$BUILD_TYPE/$MINIO_ARCH/" || true; echo $BUCKET_DATE | mc pipe nx/maui/$BUILD_TYPE/LATEST; fi
mc: <ERROR> No object/version found to be removed in `nx/maui/nightly/armhf/`. 
Bucket created successfully `nx/maui/nightly/armhf/`.
mc: <ERROR> Unable to validate source `*amd64*.AppImage`.
mc: <ERROR> Unable to validate source `*amd64*.deb`.
mc: <ERROR> Unable to validate source `*arm64*.AppImage`.
mc: <ERROR> Unable to validate source `*arm64*.deb`.
`vvave-nightly-20211007-git+e80eaae-armhf.AppImage` -> `nx/maui/nightly/armhf/vvave-nightly-20211007-git+e80eaae-armhf.AppImage`
Cleaning up project directory and file based variables 00:01
Job succeeded

image

Please see that even if nx/maui/nightly/armhf/ is the bucket but it behaves like an object when clicked in the minio console.

Scenario 2

Next is that sometimes from the log although it can be seen that multiple artifacts are pushed but those are actually missing in the bucket.

Running after script...
$ du -h *.AppImage || true
195M	buho-devel-202110070834-git+cf17a8c-armhf.AppImage
172M	index-devel-202110070834-git+c522af3-armhf.AppImage
196M	nota-devel-202110070834-git+da9c6d5-armhf.AppImage
71M	vvave-devel-202110070834-git+e80eaae-armhf.AppImage
$ du -h *.deb || true
du: cannot access '*.deb': No such file or directory
$ echo "Pushing Artifacts"
Pushing Artifacts
$ export BUCKET_DATE="$(date +'%Y-%m-%d')"
$ if [ $(uname -m) = 'x86_64' ]; then export MINIO_ARCH=amd64; elif [ $(uname -m) = 'aarch64' ]; then export MINIO_ARCH=arm64; elif [[ $(uname -m) = "armv7"* || $(uname -m) = "armhf" ]]; then export MINIO_ARCH=armhf; fi
$ if [[ "$BUILD_TYPE" == 'nightly' || "$BUILD_TYPE" == 'devel' || "$BUILD_TYPE" == "beta"* ]]; then mc rm --recursive --force "nx/maui/$BUILD_TYPE/$MINIO_ARCH/" || true; mc mb "nx/maui/$BUILD_TYPE/$MINIO_ARCH/" || true; mc cp *amd64*.AppImage "nx/maui/$BUILD_TYPE/$MINIO_ARCH/" || true; mc cp *amd64*.deb "nx/maui/$BUILD_TYPE/$MINIO_ARCH/" || true; mc cp *arm64*.AppImage "nx/maui/$BUILD_TYPE/$MINIO_ARCH/" || true; mc cp *arm64*.deb "nx/maui/$BUILD_TYPE/$MINIO_ARCH/" || true; mc cp *armhf*.AppImage "nx/maui/$BUILD_TYPE/$MINIO_ARCH/" || true; mc cp *armhf*.deb "nx/maui/$BUILD_TYPE/$MINIO_ARCH/" || true; echo $BUCKET_DATE | mc pipe nx/maui/$BUILD_TYPE/LATEST; fi
Removing `nx/maui/devel/armhf/buho-devel-202110070800-git+cf17a8c-armhf.AppImage`.
Removing `nx/maui/devel/armhf/vvave-devel-202110070800-git+e80eaae-armhf.AppImage`.
Bucket created successfully `nx/maui/devel/armhf/`.
mc: <ERROR> Unable to validate source `*amd64*.AppImage`.
mc: <ERROR> Unable to validate source `*amd64*.deb`.
mc: <ERROR> Unable to validate source `*arm64*.AppImage`.
mc: <ERROR> Unable to validate source `*arm64*.deb`.
`buho-devel-202110070834-git+cf17a8c-armhf.AppImage` -> `nx/maui/devel/armhf/buho-devel-202110070834-git+cf17a8c-armhf.AppImage`
`index-devel-202110070834-git+c522af3-armhf.AppImage` -> `nx/maui/devel/armhf/index-devel-202110070834-git+c522af3-armhf.AppImage`
`nota-devel-202110070834-git+da9c6d5-armhf.AppImage` -> `nx/maui/devel/armhf/nota-devel-202110070834-git+da9c6d5-armhf.AppImage`
`vvave-devel-202110070834-git+e80eaae-armhf.AppImage` -> `nx/maui/devel/armhf/vvave-devel-202110070834-git+e80eaae-armhf.AppImage`
Cleaning up project directory and file based variables 00:01
Job succeeded

image

Please see that even if 4 files were uploaded but in the bucket only 3 is visible.

Re-running the build sometimes uploads the artifacts correctly without changing any config or script from ci end.

But the way, the mc client that I am using is https://dl.min.io/client/mc/release/linux-arm/mc
Also please note that there is no such issue faced for the arm64 version of the client.

Any info on this would be really helpful.

Thanks.

@klauspost
Copy link
Contributor

Since you do || true you are eating error codes. Please run your script manually, one step at the time and report output. Maybe add --debug if nothing important shows up.

@probal31
Copy link
Author

probal31 commented Oct 8, 2021

@klauspost
Tried removing the || true but it didn't help much.

Also ran with --debug option. Can see an error like ObjectLockConfigurationNotFoundError but this also comes while building and uploading for amd64 and there the upload to minio works fine. So assuming this is not the issue.

Attaching the debug log here.

mc_cp_debug.log

image

Out of 9 files, only 5 of them is uploaded to minio bucket.

Can you please help to understand where the issue is?

@klauspost
Copy link
Contributor

mc: <DEBUG> POST /maui/devel/[...]?uploadId= (CompleteMultipartUpload) is indeed only present for the completed files.

For example, Searching for index-devel-2021100808 only shows parts being uploaded, but not completed.

@klauspost
Copy link
Contributor

Setting to "high", even though it isn't a primary supported platform. It could be a 32 bit platform issue.

@probal31
Copy link
Author

probal31 commented Nov 27, 2021

@klauspost Any update on this please?

@harshavardhana
Copy link
Member

@probal31 we have no updates - armhf is not our primary platform. Unfortunately, we have no cycles to work on this.

@stale
Copy link

stale bot commented Feb 26, 2022

This issue has been automatically marked as stale because it has not had recent activity. It will be closed after 21 days if no further activity occurs. Thank you for your contributions.

@stale stale bot added the stale label Feb 26, 2022
@stale stale bot removed the stale label Feb 26, 2022
@stale
Copy link

stale bot commented Jun 12, 2022

This issue has been automatically marked as stale because it has not had recent activity. It will be closed after 21 days if no further activity occurs. Thank you for your contributions.

@stale stale bot added the stale label Jun 12, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants