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

upgrade images #1441

Closed
wants to merge 4 commits into from
Closed

upgrade images #1441

wants to merge 4 commits into from

Conversation

jonathanmetzman
Copy link
Contributor

No description provided.

@jonathanmetzman
Copy link
Contributor Author

jonathanmetzman commented Sep 28, 2022

Broken benchmarks:
systemd_fuzz-link-parser - ./fuzz-varlink: error while loading shared libraries: libcap.so.2: cannot open shared object file: No such file or directory
systemd_fuzz-varlink - ./fuzz-varlink: error while loading shared libraries: libcap.so.2: cannot open shared object file: No such file or directory
njs_njs_process_script_fuzzer - can't contact SVN server - maybe refresh the benchmark.
libxslt_xpath - refresh benchmark
openh264_decoder_fuzzer - #6 4.690 E: Package 'libstdc++-5-dev' has no installation candidate #6 4.690 E: Unable to locate package libstdc++-5-dev:i386 #6 4.690 E: Couldn't find any package by regex 'libstdc++-5-dev'
libarchive_libarchive_fuzzer #20 87.41 /usr/bin/ld: /lib/x86_64-linux-gnu/libicuuc.a(umutex.ao): in function 'umtx_init': #20 87.41 (.text+0x3b): undefined reference to 'std::condition_variable::condition_variable()'
ffmpeg_ffmpeg_demuxer_fuzzer - #20 1.319 + cd alsa-lib-1.1.0 alsa-lib-1.1.0.tar #20 1.319 /src/build.sh: line 32: cd: too many arguments

Can't find fuzzer-stats (not broken):
mruby-2018-05-23
openssl_x509
php_php-fuzz-parser-2020-07-25
php_php-fuzz-execute
zstd_stream_decompress
poppler_pdf_fuzzer
grok_grk_decompress_fuzzer

@jonathanmetzman
Copy link
Contributor Author

Related: #1353

@jonathanmetzman
Copy link
Contributor Author

Blocked on #1504 since we need to update some benchmarks

@maxammann
Copy link

Doesn't this depend on switching from Ubuntu 16 to the ubuntu version of the upgraded image versions?

I think the benchmarks build in ubuntu 20 e.g. are not executable on ubuntu xenial.

@jonathanmetzman
Copy link
Contributor Author

Doesn't this depend on switching from Ubuntu 16 to the ubuntu version of the upgraded image versions?

I don't think I understand this question, could you please clarify?

I think the benchmarks build in ubuntu 20 e.g. are not executable on ubuntu xenial.

@@ -77,6 +77,7 @@ def find_digest(self, timestamp):
def copy_oss_fuzz_files(project, commit_date, benchmark_dir):
"""Checks out the right files from OSS-Fuzz to build the benchmark based on
|project| and |commit_date|. Then copies them to |benchmark_dir|."""
print('j')
Copy link
Contributor

Choose a reason for hiding this comment

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

Is this useful?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

No

Copy link
Contributor

Choose a reason for hiding this comment

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

OK, I will remove it in the other PR, then.

DonggeLiu added a commit that referenced this pull request Oct 19, 2022
@DonggeLiu
Copy link
Contributor

DonggeLiu commented Nov 2, 2022

systemd_fuzz-{link-parser, varlink}

systemd_fuzz-{link-parser, varlink} - ./fuzz-varlink: error while loading shared libraries: libcap.so.2: cannot open shared object file: No such file or directory

The issue with these two benchmarks is the same: It requires loading libcap.so.2 as a shared library.
This is OK for building, as we can install libcap.so.2 via apt install libcap-dev;
It creates a problem when running, because the runner's docker image does not inherit from the builder, and does not have that shared library.

I reckon this is an issue with the benchmark's code, and not sure if there is an elegant solution from us under the current workflow.
For example, we could install libcap.so.2 in docker/benchmark-runner/Dockerfile or the runner.Dockerfile of each fuzzer that we want to use on these two benchmarks and disable the rest.
However, neither will be elegant.

@DonggeLiu
Copy link
Contributor

libpng-1.2.56

This old version works.
I failed to upgrade to version 1.6.38 (libpng-16.38), because our target.cc has identifiers that are not defined in the new version of libpng, e.g. PNG_FLAG_CRC_CRITICAL_MASK.

@jonathanmetzman
Copy link
Contributor Author

systemd_fuzz-{link-parser, varlink}

systemd_fuzz-{link-parser, varlink} - ./fuzz-varlink: error while loading shared libraries: libcap.so.2: cannot open shared object file: No such file or directory

The issue with these two benchmarks is the same: It requires loading libcap.so.2 as a shared library. This is OK for building, as we can install libcap.so.2 via apt install libcap-dev; It creates a problem when running, because the runner's docker image does not inherit from the builder, and does not have that shared library.

I reckon this is an issue with the benchmark's code, and not sure if there is an elegant solution from us under the current workflow. For example, we could install libcap.so.2 in docker/benchmark-runner/Dockerfile or the runner.Dockerfile of each fuzzer that we want to use on these two benchmarks and disable the rest. However, neither will be elegant.

You can just update broken benchmarks

@jonathanmetzman
Copy link
Contributor Author

libpng-1.2.56

This old version works. I failed to upgrade to version 1.6.38 (libpng-16.38), because our target.cc has identifiers that are not defined in the new version of libpng, e.g. PNG_FLAG_CRC_CRITICAL_MASK.

Maybe delete the benchmark and use the integration script to integrate from oss-fuzz.

@DonggeLiu
Copy link
Contributor

libpng-1.2.56

This old version works. I failed to upgrade to version 1.6.38 (libpng-16.38), because our target.cc has identifiers that are not defined in the new version of libpng, e.g. PNG_FLAG_CRC_CRITICAL_MASK.

Maybe delete the benchmark and use the integration script to integrate from oss-fuzz.

Done!

@DonggeLiu
Copy link
Contributor

systemd_fuzz-{link-parser, varlink}

systemd_fuzz-{link-parser, varlink} - ./fuzz-varlink: error while loading shared libraries: libcap.so.2: cannot open shared object file: No such file or directory

The issue with these two benchmarks is the same: It requires loading libcap.so.2 as a shared library. This is OK for building, as we can install libcap.so.2 via apt install libcap-dev; It creates a problem when running, because the runner's docker image does not inherit from the builder, and does not have that shared library.
I reckon this is an issue with the benchmark's code, and not sure if there is an elegant solution from us under the current workflow. For example, we could install libcap.so.2 in docker/benchmark-runner/Dockerfile or the runner.Dockerfile of each fuzzer that we want to use on these two benchmarks and disable the rest. However, neither will be elegant.

You can just update broken benchmarks

I was not sure if updating them will fix the error, though.
I documented the reasons above when I was updating both benchmarks.
I will push the updated code (version update + a minor modification), but I am pretty sure that they will fail.

@DonggeLiu
Copy link
Contributor

Broken benchmarks: systemd_fuzz-link-parser - ./fuzz-varlink: error while loading shared libraries: libcap.so.2: cannot open shared object file: No such file or directory systemd_fuzz-varlink - ./fuzz-varlink: error while loading shared libraries: libcap.so.2: cannot open shared object file: No such file or directory njs_njs_process_script_fuzzer - can't contact SVN server - maybe refresh the benchmark. libxslt_xpath - refresh benchmark openh264_decoder_fuzzer - #6 4.690 E: Package 'libstdc++-5-dev' has no installation candidate #6 4.690 E: Unable to locate package libstdc++-5-dev:i386 #6 4.690 E: Couldn't find any package by regex 'libstdc++-5-dev' libarchive_libarchive_fuzzer #20 87.41 /usr/bin/ld: /lib/x86_64-linux-gnu/libicuuc.a(umutex.ao): in function 'umtx_init': #20 87.41 (.text+0x3b): undefined reference to 'std::condition_variable::condition_variable()' ffmpeg_ffmpeg_demuxer_fuzzer - #20 1.319 + cd alsa-lib-1.1.0 alsa-lib-1.1.0.tar #20 1.319 /src/build.sh: line 32: cd: too many arguments

Can't find fuzzer-stats (not broken): mruby-2018-05-23 openssl_x509 php_php-fuzz-parser-2020-07-25 php_php-fuzz-execute zstd_stream_decompress poppler_pdf_fuzzer grok_grk_decompress_fuzzer

I reckon all benchmarks in this list have been fixed and updated, except systemd_fuzz-{link-parser, varlink}.

@DonggeLiu DonggeLiu mentioned this pull request Nov 4, 2022
75 tasks
@DonggeLiu
Copy link
Contributor

This is included in #1526 : )

@DonggeLiu DonggeLiu closed this Dec 5, 2022
@jonathanmetzman jonathanmetzman deleted the upgrade-images branch December 5, 2022 15:00
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