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

Bump libjpeg to 3.0.3 #2194

Merged
merged 1 commit into from
Jun 12, 2024
Merged

Bump libjpeg to 3.0.3 #2194

merged 1 commit into from
Jun 12, 2024

Conversation

vrabaud
Copy link
Collaborator

@vrabaud vrabaud commented Jun 5, 2024

The CI started failing like in
#2033

@vrabaud vrabaud requested a review from y-guyon June 5, 2024 13:23
@vrabaud vrabaud marked this pull request as ready for review June 5, 2024 14:01
@vrabaud
Copy link
Collaborator Author

vrabaud commented Jun 5, 2024

Hmmm, this is erratic. It failed on my own actions but not here. https://github.com/vrabaud/libavif/actions/runs/9384941793/job/25841880554
It fails when encoding with SVT and decoding with gav1.
GitHub images are probably being updated, let's wait.

run: ./svt.cmd
# Visual Studio 2022 has an issue starting at 17.8.0 which might cause
# AVX-512 instructions to be emitted in non-AVX-512 code. See
# https://github.com/AOMediaCodec/libavif/issues/2033#issuecomment-1960062751.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The SEH exception code is different: 0xc0000005 vs. 0xc000001d in #2033. So we should not assume this is the same Visual Studio 2022 bug.

I haven't found a webpage that tabulates the SEH exception codes, but my web searches shows that 0xc0000005 is access violation and 0xc000001d is illegal instruction.

@vrabaud
Copy link
Collaborator Author

vrabaud commented Jun 5, 2024

Let's wait for the deployment of windows latest 20240603 to be done, it will have VS code 17.10 everywhere. We'll clear the caches and see if it still happens.

@vrabaud vrabaud changed the title Build SVT with clang on Windows. Bump libjpeg to 3.0.3 Jun 7, 2024
@vrabaud
Copy link
Collaborator Author

vrabaud commented Jun 7, 2024

The windows-latest is fully deployed. I repurposed that PR by upgrading another library to see if the CI still fails.

@wantehchang
Copy link
Collaborator

wantehchang commented Jun 7, 2024

Vincent: We still got the "SEH exception with code 0xc0000005 thrown in the test body." error in windows-latest.

On the other hand, two pull requests of Vignesh's passed all tests yesterday:
#2191
#2195

@vrabaud
Copy link
Collaborator Author

vrabaud commented Jun 7, 2024

Right, the windows CI was not run, only the windows-installed, and it does not include SVT.

@wantehchang
Copy link
Collaborator

wantehchang commented Jun 11, 2024

Vincent: I did some experiments in my pull request #2199 last night. I did not track this down, but I have two findings.

  1. The tests in avifcodectest fail whenever libgav1 is used as the decoder:
[  FAILED  ] All/CodecTest.EncodeDecode/2, where GetParam() = (1, 3)
[  FAILED  ] All/CodecTest.EncodeDecode/5, where GetParam() = (4, 3)
[  FAILED  ] All/CodecTest.EncodeDecode/8, where GetParam() = (5, 3)

The value of AVIF_CODEC_CHOICE_LIBGAV1 is 3. You can also verify this by inspecting avifcodectest.cc.

  1. The "Build aom" step failed, yet the "Build libavif (ninja)" step still succeeded. See

https://github.com/AOMediaCodec/libavif/actions/runs/9415816061/job/25937592690?pr=2194

This does not make sense, because the linking of the executable programs should fail (aom.lib is missing). This may indicate we are still using a cache file. Could you look into this? Thanks.

@vrabaud
Copy link
Collaborator Author

vrabaud commented Jun 11, 2024

The cache is working properly.
For 2, it unfortunately makes sense: libaom is built from ext and it fails (the CI should stop here ...). Then, it is told CMake to have a local libaom: it does not find one in ext, it therefore builds its own in CMake (which now works).
So, the problem is therefore from ligav1, it narrows it down.

@wantehchang
Copy link
Collaborator

Vincent: In https://github.com/AOMediaCodec/libavif/actions/runs/9415816061/job/25937592690?pr=2194 I see the caches for ext and build/_deps are NOT used. Only the cache for ~/.cargo is used. So I can't explain why "Build aom" failed yet "Build libavif (ninja)" still succeeded.

I will try to reproduce the test failure on my Windows laptop later today.

@wantehchang
Copy link
Collaborator

Vincent: Thank you for your reply. I see the following in https://github.com/AOMediaCodec/libavif/actions/runs/9415816061/job/25937592690?pr=2194:

-- libavif(AVIF_CODEC_AOM=LOCAL): compiled library not found at D:/a/libavif/libavif/ext/aom/build.libavif/aom.lib, using FetchContent
-- libavif(AVIF_CODEC_AOM=LOCAL): ext/aom found; using as FetchContent SOURCE_DIR
-- libavif(AVIF_CODEC_AOM=LOCAL): configuring aom

We probably should not use an existing ext/aom as the libaom source dir.

@vrabaud
Copy link
Collaborator Author

vrabaud commented Jun 11, 2024

It seems there are two LLVMs installed (16 and 17), cf actions/runner-images#10001 . Not sure why one is preferred in one case though.

@wantehchang
Copy link
Collaborator

Vincent: I finally found a bug that matches what we are seeing in avifcodectest in the windows-latest image: actions/runner-images#10004

I am testing a workaround now.

@vrabaud vrabaud merged commit 7695103 into AOMediaCodec:main Jun 12, 2024
28 checks passed
@vrabaud vrabaud deleted the macos_latest branch June 12, 2024 19:55
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