Skip to content

Fix ld preload for breakpad #15305

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

Merged
merged 2 commits into from
Mar 4, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion ydb/apps/ydbd/ya.make
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ PEERDIR(
yql/essentials/udfs/common/url_base
yql/essentials/udfs/common/yson2
yql/essentials/udfs/logs/dsv
# ydb/library/breakpad # not working properly, see KIKIMR-18829 for details
# ydb/library/breakpad
ydb/public/sdk/cpp/client/ydb_persqueue_public/codecs
)

Expand Down
10 changes: 10 additions & 0 deletions ydb/deploy/docker/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -26,18 +26,28 @@ COPY --chmod=0644 /liblibaio-dynamic.so /lib/liblibaio-dynamic.so
###

FROM ${BREAKPAD_INIT_IMAGE}:${BREAKPAD_INIT_IMAGE_TAG} AS breakpad_init
FROM base AS breakpad-setuid
COPY --from=breakpad_init /usr/lib/libbreakpad_init.so /usr/lib/libbreakpad_init.so
# workaround for old docker versions
# https://github.com/moby/buildkit/issues/3920
RUN /usr/bin/chmod 4644 /usr/lib/libbreakpad_init.so


FROM base AS base-breakpad
RUN \
apt-get -yqq update && \
apt-get -yqq install --no-install-recommends binutils gdb strace linux-tools-generic && \
apt-get clean && rm -rf /var/lib/apt/lists/*
ENV LD_PRELOAD=libbreakpad_init.so
ENV BREAKPAD_MINIDUMPS_PATH=/opt/ydb/volumes/coredumps
ENV BREAKPAD_MINIDUMPS_SCRIPT=/opt/ydb/bin/minidump_script.py
# breakpad binaries
COPY --chmod=0755 --from=breakpad_init /usr/bin/minidump_stackwalk /usr/bin/minidump_stackwalk
COPY --chmod=0755 --from=breakpad_init /usr/bin/minidump-2-core /usr/bin/minidump-2-core
# minidump callback script
COPY --chmod=0755 --chown=ydb /minidump_script.py /opt/ydb/bin/minidump_script.py
# minidump init library
COPY --link --from=breakpad-setuid /usr/lib/libbreakpad_init.so /usr/lib/libbreakpad_init.so

FROM base AS ydbd-setcap
COPY --chmod=0755 --chown=ydb /ydbd /opt/ydb/bin/ydbd
Expand Down
2 changes: 1 addition & 1 deletion ydb/tests/functional/minidumps/ya.make
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ IF (OS_LINUX AND NOT SANITIZER_TYPE)
PY3TEST()

TEST_SRCS(
test_break.py
# test_break.py
)

SIZE(MEDIUM)
Expand Down
2 changes: 1 addition & 1 deletion ydb/tests/functional/ya.make
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ RECURSE(
kqp
large_serializable
limits
# minidumps # breakpad is disabled now, see KIKIMR-18829 for details
minidumps
postgresql
query_cache
rename
Expand Down
Loading