aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMaxim Yurchuk <maxim-yurchuk@ydb.tech>2025-03-04 15:48:18 +0000
committerGitHub <noreply@github.com>2025-03-04 18:48:18 +0300
commit827cd39b843ead1adfaa20f8a55e2e17da62a4eb (patch)
tree091a90c2ae9fa5f071612c6e315195a38a6d958d
parent0ce97934c6fb81d91e7d35b54d8e91b47afaa4c9 (diff)
downloadydb-827cd39b843ead1adfaa20f8a55e2e17da62a4eb.tar.gz
Fix ld preload for breakpad (#15305)
-rw-r--r--ydb/apps/ydbd/ya.make2
-rw-r--r--ydb/deploy/docker/Dockerfile10
-rw-r--r--ydb/tests/functional/minidumps/ya.make2
-rw-r--r--ydb/tests/functional/ya.make2
4 files changed, 13 insertions, 3 deletions
diff --git a/ydb/apps/ydbd/ya.make b/ydb/apps/ydbd/ya.make
index 09bfa3ff0a..51323ee07c 100644
--- a/ydb/apps/ydbd/ya.make
+++ b/ydb/apps/ydbd/ya.make
@@ -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
)
diff --git a/ydb/deploy/docker/Dockerfile b/ydb/deploy/docker/Dockerfile
index f47740a3ce..1a761308c6 100644
--- a/ydb/deploy/docker/Dockerfile
+++ b/ydb/deploy/docker/Dockerfile
@@ -26,11 +26,19 @@ 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
@@ -38,6 +46,8 @@ COPY --chmod=0755 --from=breakpad_init /usr/bin/minidump_stackwalk /usr/bin/mini
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
diff --git a/ydb/tests/functional/minidumps/ya.make b/ydb/tests/functional/minidumps/ya.make
index 554c6ef456..efe9645bb7 100644
--- a/ydb/tests/functional/minidumps/ya.make
+++ b/ydb/tests/functional/minidumps/ya.make
@@ -3,7 +3,7 @@ IF (OS_LINUX AND NOT SANITIZER_TYPE)
PY3TEST()
TEST_SRCS(
- test_break.py
+# test_break.py
)
SIZE(MEDIUM)
diff --git a/ydb/tests/functional/ya.make b/ydb/tests/functional/ya.make
index 56cefc211e..955c45a1f8 100644
--- a/ydb/tests/functional/ya.make
+++ b/ydb/tests/functional/ya.make
@@ -15,7 +15,7 @@ RECURSE(
kqp
large_serializable
limits
- # minidumps # breakpad is disabled now, see KIKIMR-18829 for details
+ minidumps
postgresql
query_cache
rename