summaryrefslogtreecommitdiffstats
path: root/test/units/TEST-07-PID1.issue-30412.sh
blob: c1cb00e071342d0e27c888fbb31f99da93faaed7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#!/usr/bin/env bash
# SPDX-License-Identifier: LGPL-2.1-or-later
set -eux
set -o pipefail

# Check that socket FDs are not double closed on error: https://github.com/systemd/systemd/issues/30412

mkdir -p /run/systemd/system

rm -f /tmp/badbin
touch /tmp/badbin
chmod 744 /tmp/badbin

cat >/run/systemd/system/badbin_assert.service <<EOF
[Service]
ExecStart=/tmp/badbin
Restart=no
EOF

cat >/run/systemd/system/badbin_assert.socket <<EOF
[Socket]
ListenStream=@badbin_assert.socket
FlushPending=yes
EOF

systemctl daemon-reload
systemctl start badbin_assert.socket

socat - ABSTRACT-CONNECT:badbin_assert.socket

timeout 10 sh -c 'while systemctl is-active badbin_assert.service; do sleep .5; done'
[[ "$(systemctl show -P ExecMainStatus badbin_assert.service)" == 203 ]]