linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* PROBLEM: with daemon.c after y2038 on 32-bits Kernel
@ 2022-05-17  7:51 Arnaud Panaïotis
  2022-05-30  7:03 ` Arnaud Panaïotis
  0 siblings, 1 reply; 8+ messages in thread
From: Arnaud Panaïotis @ 2022-05-17  7:51 UTC (permalink / raw)
  To: linux-kernel

[-- Attachment #1: Type: text/plain, Size: 1732 bytes --]

Hello,

I'm working for a client to generate embedded 32-bits Linux Kernel working after y2038 issue.

I generated a 5.15 Kernel thought Buildroot with Coreutils 9.0, GCC 11.2.0, Binutils 2.37, Glibc 2.34-9 and CFLAGS  -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -D_TIME_BITS=64.
 
I encounter an issue while working with OpenSSH (I initially contacted them before).
 
After 2038, /usr/sbin/sshd does not create an error but it child does generate this one:
daemon() failed: Value too large for defined data type
 
This happend here in sshd.c: 

2019         /*
2020          * If not in debugging mode, not started from inetd and not already
2021          * daemonized (eg re-exec via SIGHUP), disconnect from the controlling
2022          * terminal, and fork.  The original process exits.
2023          */
2024         already_daemon = daemonized();
2025         if (!(debug_flag || inetd_flag || no_daemon_flag || already_daemon)) {
2026
2027                 if (daemon(0, 0) == -1)
2028                         fatal("daemon() failed: %.200s", strerror(errno));

To reproduce: 

# date -s "2040-05-12"
# hwclock --systohc
# reboot
# /usr/sbin/sshd

Note this error occurs only after the reboot, and setting a date before 2038 also require a reboot to remove the error.
 
strace and gdb trace linked.
 
Let me know if you need additional information.
 
Best regards,
 
PS: I had a similar issue with binutils cp
Discussion : debbugs.gnu.org/cgi/bugreport.cgi?bug=55023
Fix : sourceware.org/bugzilla/show_bug.cgi?id=29097
 
--
Arnaud PANAÏOTIS | Lead Developer Freelance
+33 6 34 82 12 62 | arnaud.panaiotis@gmx.fr

18 place Jean Moulin - 38000 Grenoble
APsudo - www.panaiotis.fr

[-- Attachment #2: sshd_gdb.txt --]
[-- Type: text/plain, Size: 12953 bytes --]

Breakpoint 1 at 0x6170
Starting program: /usr/sbin/sshd

Breakpoint 1, __libc_fork () at fork.c:48
__run_fork_handlers (who=atfork_run_prepare, do_locking=false)
    at register-atfork.c:112
fork_handler_list_size (list=0xb7cbdee0 <fork_handlers>)
    at ../malloc/dynarray-skeleton.c:243
__run_fork_handlers (who=<optimized out>, do_locking=false)
    at register-atfork.c:117
__libc_fork () at fork.c:59
__GI__Fork () at ../sysdeps/unix/sysv/linux/arch-fork.h:43
0xb7b7c431 in arch_fork (ctid=<optimized out>)
    at ../sysdeps/unix/sysv/linux/arch-fork.h:43
0xb7b7c43f in arch_fork (ctid=<optimized out>)
    at ../sysdeps/unix/sysv/linux/arch-fork.h:43
0xb7b7c442 in arch_fork (ctid=<optimized out>)
    at ../sysdeps/unix/sysv/linux/arch-fork.h:43
0xb7b7c44b in arch_fork (ctid=<optimized out>)
    at ../sysdeps/unix/sysv/linux/arch-fork.h:43
0xb7b7c453 in arch_fork (ctid=<optimized out>)
    at ../sysdeps/unix/sysv/linux/arch-fork.h:43
[Attaching after process 7146 fork to child process 7166]
[New inferior 2 (process 7166)]
[Detaching after fork from parent process 7146]
[Inferior 1 (process 7146) detached]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/libthread_db.so.1".
[Switching to Thread 0xb7a9cd40 (LWP 7166)]
__GI__Fork () at ../sysdeps/nptl/_Fork.c:29
__GI__Fork () at ../sysdeps/nptl/_Fork.c:31
__GI__Fork () at ../sysdeps/nptl/_Fork.c:50
__libc_fork () at fork.c:75
fork_system_setup () at ../sysdeps/nptl/fork.h:34
__libc_fork () at fork.c:80
reclaim_stacks () at ../sysdeps/nptl/fork.h:58
list_del (elem=0xb7a9cda0) at ../include/list.h:56
0xb7b7c175 in list_del (elem=0xb7a9cda0) at ../include/list.h:56
reclaim_stacks () at ../sysdeps/nptl/fork.h:143
__libc_fork () at fork.c:102
reclaim_stacks () at ../sysdeps/nptl/fork.h:147
list_add (head=<optimized out>, newp=0xb7a9cda0) at ../include/list.h:44
__libc_fork () at fork.c:105
__run_fork_handlers (who=atfork_run_child, do_locking=false)
    at register-atfork.c:112
fork_handler_list_size (list=0xb7cbdee0 <fork_handlers>)
    at ../malloc/dynarray-skeleton.c:243
__run_fork_handlers (who=atfork_run_child, do_locking=false)
    at register-atfork.c:127
daemon (nochdir=0, noclose=0) at daemon.c:57
setsid () at ../sysdeps/unix/syscall-template.S:120
daemon (nochdir=0, noclose=0) at daemon.c:60
chdir () at ../sysdeps/unix/syscall-template.S:120
daemon (nochdir=0, noclose=0) at daemon.c:63
__GI___open_nocancel (file=0xb7c4ba54 "/dev/null", oflag=2)
    at ../sysdeps/unix/sysv/linux/open_nocancel.c:34
__GI___fstat64 (fd=3, buf=0xbffff4a0)
    at ../sysdeps/unix/sysv/linux/fstat64.c:43
__x86.get_pc_thunk.dx () at ../sysdeps/i386/fpu/s_frexpl.S:61
__GI___fstat64 (fd=3, buf=0xbffff4a0)
    at ../sysdeps/unix/sysv/linux/fstat64.c:50
__GI___fstat64_time64 (buf=0xbffff414, fd=3)
    at ../sysdeps/unix/sysv/linux/fstat64.c:35
__GI___fstatat64_time64 (fd=3, file=0xb7c4bf09 "", buf=0xbffff414, flag=4096)
    at ../sysdeps/unix/sysv/linux/fstatat64.c:153
0xb7ba4cd1 in fstatat64_time64_statx (flag=<optimized out>,
    buf=<optimized out>, file=<optimized out>, fd=<optimized out>)
    at ../sysdeps/unix/sysv/linux/fstatat64.c:50
0xb7ba4ce3 in fstatat64_time64_statx (flag=<optimized out>,
    buf=<optimized out>, file=<optimized out>, fd=<optimized out>)
    at ../sysdeps/unix/sysv/linux/fstatat64.c:50
0xb7ba4cef in fstatat64_time64_statx (flag=<optimized out>,
    buf=<optimized out>, file=0xb7c4bf09 "", fd=3)
    at ../sysdeps/unix/sysv/linux/fstatat64.c:50
fstatat64_time64_statx (flag=4096, buf=0xbffff414, file=0xb7c4bf09 "", fd=3)
    at ../sysdeps/unix/sysv/linux/fstatat64.c:50
__gnu_dev_makedev (__minor=5, __major=0) at ../include/sys/sysmacros.h:49
0xb7ba4d48 in __gnu_dev_makedev (__minor=5, __major=0)
    at ../include/sys/sysmacros.h:49
0xb7ba4d5a in __gnu_dev_makedev (__minor=5, __major=0)
    at ../include/sys/sysmacros.h:49
0xb7ba4d7e in __gnu_dev_makedev (__minor=5, __major=0)
    at ../include/sys/sysmacros.h:49
0xb7ba4da5 in __gnu_dev_makedev (__minor=<optimized out>,
    __major=<optimized out>) at ../include/sys/sysmacros.h:49
0xb7ba4dd5 in __gnu_dev_makedev (__minor=3, __major=1)
    at ../include/sys/sysmacros.h:49
0xb7ba4ded in __gnu_dev_makedev (__minor=3, __major=1)
    at ../include/sys/sysmacros.h:49
0xb7ba4dfb in __gnu_dev_makedev (__minor=3, __major=1)
    at ../include/sys/sysmacros.h:49
0xb7ba4e14 in __gnu_dev_makedev (__minor=<optimized out>,
    __major=<optimized out>) at ../include/sys/sysmacros.h:49
0xb7ba4e22 in __gnu_dev_makedev (__minor=<optimized out>,
    __major=<optimized out>) at ../include/sys/sysmacros.h:49
0xb7ba4e41 in __gnu_dev_makedev (__minor=<optimized out>,
    __major=<optimized out>) at ../include/sys/sysmacros.h:49
0xb7ba4e4d in __gnu_dev_makedev (__minor=<optimized out>,
    __major=<optimized out>) at ../include/sys/sysmacros.h:49
0xb7ba4e5b in __gnu_dev_makedev (__minor=<optimized out>,
    __major=<optimized out>) at ../include/sys/sysmacros.h:49
0xb7ba4e63 in __gnu_dev_makedev (__minor=<optimized out>,
    __major=<optimized out>) at ../include/sys/sysmacros.h:49
0xb7ba4e7b in __gnu_dev_makedev (__minor=<optimized out>,
    __major=<optimized out>) at ../include/sys/sysmacros.h:49
0xb7ba4e95 in __gnu_dev_makedev (__minor=<optimized out>,
    __major=<optimized out>) at ../include/sys/sysmacros.h:49
0xb7ba4eaa in __gnu_dev_makedev (__minor=<optimized out>,
    __major=<optimized out>) at ../include/sys/sysmacros.h:49
0xb7ba4ec3 in __gnu_dev_makedev (__minor=<optimized out>,
    __major=<optimized out>) at ../include/sys/sysmacros.h:49
__cp_stat64_t64_stat64 (st64_t64=0xbffff414, st64=0xbffff4a0)
    at ../sysdeps/unix/sysv/linux/stat_t64_cp.c:29
__x86.get_pc_thunk.cx () at ../sysdeps/i386/i686/multiarch/strcpy-sse2.S:314
__cp_stat64_t64_stat64 (st64_t64=0xbffff414, st64=0xbffff4a0)
    at ../include/time.h:350
0xb7bb0a8d in in_time_t_range (t=<optimized out>) at ../include/time.h:350
0xb7bb0a91 in in_time_t_range (t=<optimized out>) at ../include/time.h:350
daemon (nochdir=0, noclose=0) at daemon.c:88
__close_nocancel_nostatus (fd=3) at ../sysdeps/unix/sysv/linux/not-cancel.h:60
__GI___close_nocancel (fd=3) at ../sysdeps/unix/sysv/linux/close_nocancel.c:26
__x86.get_pc_thunk.dx () at ../sysdeps/i386/fpu/s_frexpl.S:61
daemon (nochdir=0, noclose=0) at daemon.c:89
main (ac=<optimized out>, av=<optimized out>) at sshd.c:2028
__GI___errno_location () at errno-loc.c:26
strerror (errnum=75) at strerror.c:24
__GI___strerror_l (errnum=75, loc=0xb7cbabe0 <_nl_global_locale>)
    at strerror_l.c:39
__x86.get_pc_thunk.bx () at ../sysdeps/i386/i686/multiarch/memset-sse2.S:108
__GI___strerror_l (errnum=75, loc=0xb7cbabe0 <_nl_global_locale>)
    at strerror_l.c:40
__get_errlist (errnum=75) at errlist.c:37
__x86.get_pc_thunk.cx () at ../sysdeps/i386/i686/multiarch/strcpy-sse2.S:314
__get_errlist (errnum=75) at errlist.c:38
__GI___strerror_l (errnum=75, loc=0xb7cbabe0 <_nl_global_locale>)
    at strerror_l.c:52
translate (loc=0xb7cbabe0 <_nl_global_locale>,
    str=0xb7c509bc "Value too large for defined data type") at strerror_l.c:28
__GI___uselocale (newloc=0xb7cbabe0 <_nl_global_locale>) at uselocale.c:31
__x86.get_pc_thunk.dx () at ../sysdeps/i386/fpu/s_frexpl.S:61
__GI___uselocale (newloc=0xb7cbabe0 <_nl_global_locale>) at uselocale.c:33
translate (loc=0xb7cbabe0 <_nl_global_locale>,
    str=0xb7c509bc "Value too large for defined data type") at strerror_l.c:29
__GI___dcgettext (domainname=0xb7c502ac <_libc_intl_domainname> "libc",
    msgid=0xb7c509bc "Value too large for defined data type", category=5)
    at dcgettext.c:47
__dcigettext (domainname=0xb7c502ac <_libc_intl_domainname> "libc",
    msgid1=0xb7c509bc "Value too large for defined data type", msgid2=0x0,
    plural=0, n=0, category=5) at dcigettext.c:494
___pthread_rwlock_rdlock (rwlock=0xb7cbafa0 <__libc_setlocale_lock>)
    at pthread_rwlock_rdlock.c:27
__pthread_rwlock_rdlock_full64 (abstime=0x0, clockid=0,
    rwlock=0xb7cbafa0 <__libc_setlocale_lock>)
    at /home/arnaud/VLB-SNTTRT/devenv/branches/kernel510/output/build/glibc-2.34-9-g9acab0bba6a5a57323b1f94bf95b21618a9e5aa4/nptl/pthread_rwlock_common.c:298
0xb7b2e0a6 in futex_wake (private=<optimized out>,
    processes_to_wake=<optimized out>, futex_word=<optimized out>)
    at ../sysdeps/nptl/futex-internal.h:213
___pthread_rwlock_rdlock (rwlock=<optimized out>) at pthread_rwlock_rdlock.c:29
__dcigettext (domainname=0xb7c502ac <_libc_intl_domainname> "libc",
    msgid1=0xb7c509bc "Value too large for defined data type", msgid2=0x0,
    plural=0, n=0, category=5) at dcigettext.c:528
___pthread_rwlock_rdlock (rwlock=0xb7cbb0e0 <_nl_state_lock>)
    at pthread_rwlock_rdlock.c:27
__pthread_rwlock_rdlock_full64 (abstime=0x0, clockid=0,
    rwlock=0xb7cbb0e0 <_nl_state_lock>)
    at /home/arnaud/VLB-SNTTRT/devenv/branches/kernel510/output/build/glibc-2.34-9-g9acab0bba6a5a57323b1f94bf95b21618a9e5aa4/nptl/pthread_rwlock_common.c:298
0xb7b2e0a6 in futex_wake (private=<optimized out>,
    processes_to_wake=<optimized out>, futex_word=<optimized out>)
    at ../sysdeps/nptl/futex-internal.h:213
___pthread_rwlock_rdlock (rwlock=<optimized out>) at pthread_rwlock_rdlock.c:29
__dcigettext (domainname=0xb7c502ac <_libc_intl_domainname> "libc",
    msgid1=0xb7c509bc "Value too large for defined data type", msgid2=0x0,
    plural=0, n=0, category=5) at dcigettext.c:533
__current_locale_name (category=5) at localename.c:25
__dcigettext (domainname=0xb7c502ac <_libc_intl_domainname> "libc",
    msgid1=0xb7c509bc "Value too large for defined data type", msgid2=0x0,
    plural=0, n=0, category=5) at dcigettext.c:560
___pthread_rwlock_rdlock (rwlock=0xb7cbb120 <tree_lock>)
    at pthread_rwlock_rdlock.c:27
__pthread_rwlock_rdlock_full64 (abstime=0x0, clockid=0,
    rwlock=0xb7cbb120 <tree_lock>)
    at /home/arnaud/VLB-SNTTRT/devenv/branches/kernel510/output/build/glibc-2.34-9-g9acab0bba6a5a57323b1f94bf95b21618a9e5aa4/nptl/pthread_rwlock_common.c:298
0xb7b2e0a6 in futex_wake (private=<optimized out>,
    processes_to_wake=<optimized out>, futex_word=<optimized out>)
    at ../sysdeps/nptl/futex-internal.h:213
___pthread_rwlock_rdlock (rwlock=<optimized out>) at pthread_rwlock_rdlock.c:29
__dcigettext (domainname=0xb7c502ac <_libc_intl_domainname> "libc",
    msgid1=0xb7c509bc "Value too large for defined data type", msgid2=0x0,
    plural=0, n=0, category=5) at dcigettext.c:569
__GI___tfind (key=0xbffff440, vrootp=0xb7cbb11c <root>,
    compar=0xb7ad69c0 <transcmp>) at tsearch.c:373
__GI___tfind (compar=<optimized out>, vrootp=<optimized out>,
    key=<optimized out>) at tsearch.c:383
___pthread_rwlock_unlock (rwlock=0xb7cbb120 <tree_lock>)
    at pthread_rwlock_unlock.c:39
__pthread_rwlock_rdunlock (rwlock=0xb7cbb120 <tree_lock>)
    at /home/arnaud/VLB-SNTTRT/devenv/branches/kernel510/output/build/glibc-2.34-9-g9acab0bba6a5a57323b1f94bf95b21618a9e5aa4/nptl/pthread_rwlock_common.c:227
__pthread_rwlock_get_private (rwlock=0xb7cbb120 <tree_lock>)
    at /home/arnaud/VLB-SNTTRT/devenv/branches/kernel510/output/build/glibc-2.34-9-g9acab0bba6a5a57323b1f94bf95b21618a9e5aa4/nptl/pthread_rwlock_common.c:221
__pthread_rwlock_rdunlock (rwlock=0xb7cbb120 <tree_lock>)
    at /home/arnaud/VLB-SNTTRT/devenv/branches/kernel510/output/build/glibc-2.34-9-g9acab0bba6a5a57323b1f94bf95b21618a9e5aa4/nptl/pthread_rwlock_common.c:232
___pthread_rwlock_unlock (rwlock=0xb7cbb120 <tree_lock>)
    at pthread_rwlock_unlock.c:43
__pthread_rwlock_rdunlock (rwlock=0xb7cbb120 <tree_lock>)
    at /home/arnaud/VLB-SNTTRT/devenv/branches/kernel510/output/build/glibc-2.34-9-g9acab0bba6a5a57323b1f94bf95b21618a9e5aa4/nptl/pthread_rwlock_common.c:242
___pthread_rwlock_unlock (rwlock=<optimized out>) at pthread_rwlock_unlock.c:44
__dcigettext (domainname=0xb7c502ac <_libc_intl_domainname> "libc",
    msgid1=0xb7c509bc "Value too large for defined data type", msgid2=0x0,
    plural=0, n=0, category=5) at dcigettext.c:573
_nl_category_names_get (index=5) at ../include/../locale/localeinfo.h:206
0xb7ad74bf in _nl_category_names_get (index=5)
    at ../include/../locale/localeinfo.h:206
__dcigettext (domainname=0xb7c502ac <_libc_intl_domainname> "libc",
    msgid1=0xb7c509bc "Value too large for defined data type", msgid2=0x0,
    plural=0, n=0, category=5) at dcigettext.c:647
guess_category_value (
    categoryname=0xb7c31493 <_nl_category_names+51> "LC_MESSAGES", category=5)
    at dcigettext.c:1539
__current_locale_name (category=5) at localename.c:25
guess_category_value (
    categoryname=0xb7c31493 <_nl_category_names+51> "LC_MESSAGES", category=5)
    at dcigettext.c:1568
0xb7ad7724 in guess_category_value (
    categoryname=0xb7c31493 <_nl_category_names+51> "LC_MESSAGES", category=5)
    at dcigettext.c:1568

[-- Attachment #3: sshd_strace.log --]
[-- Type: application/octet-stream, Size: 35596 bytes --]

execve("/usr/sbin/sshd", ["/usr/sbin/sshd", "-E", "/var/log/sshd"], 0xbf857c30 /* 15 vars */) = 0
brk(NULL)                               = 0x508000
mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f8b000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "tls/i686/sse2/libpam.so.0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "tls/i686/libpam.so.0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "tls/sse2/libpam.so.0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "tls/libpam.so.0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "i686/sse2/libpam.so.0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "i686/libpam.so.0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "sse2/libpam.so.0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "libpam.so.0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/opt/apps/current/usr/lib/tls/i686/sse2/libpam.so.0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
statx(AT_FDCWD, "/opt/apps/current/usr/lib/tls/i686/sse2", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT, STATX_BASIC_STATS, 0xbfc0f858) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/opt/apps/current/usr/lib/tls/i686/libpam.so.0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
statx(AT_FDCWD, "/opt/apps/current/usr/lib/tls/i686", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT, STATX_BASIC_STATS, 0xbfc0f858) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/opt/apps/current/usr/lib/tls/sse2/libpam.so.0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
statx(AT_FDCWD, "/opt/apps/current/usr/lib/tls/sse2", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT, STATX_BASIC_STATS, 0xbfc0f858) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/opt/apps/current/usr/lib/tls/libpam.so.0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
statx(AT_FDCWD, "/opt/apps/current/usr/lib/tls", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT, STATX_BASIC_STATS, 0xbfc0f858) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/opt/apps/current/usr/lib/i686/sse2/libpam.so.0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
statx(AT_FDCWD, "/opt/apps/current/usr/lib/i686/sse2", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT, STATX_BASIC_STATS, 0xbfc0f858) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/opt/apps/current/usr/lib/i686/libpam.so.0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
statx(AT_FDCWD, "/opt/apps/current/usr/lib/i686", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT, STATX_BASIC_STATS, 0xbfc0f858) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/opt/apps/current/usr/lib/sse2/libpam.so.0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
statx(AT_FDCWD, "/opt/apps/current/usr/lib/sse2", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT, STATX_BASIC_STATS, 0xbfc0f858) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/opt/apps/current/usr/lib/libpam.so.0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
statx(AT_FDCWD, "/opt/apps/current/usr/lib", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT, STATX_BASIC_STATS, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0755, stx_size=1024, ...}) = 0
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/lib/tls/i686/sse2/libpam.so.0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
statx(AT_FDCWD, "/lib/tls/i686/sse2", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT, STATX_BASIC_STATS, 0xbfc0f858) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/lib/tls/i686/libpam.so.0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
statx(AT_FDCWD, "/lib/tls/i686", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT, STATX_BASIC_STATS, 0xbfc0f858) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/lib/tls/sse2/libpam.so.0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
statx(AT_FDCWD, "/lib/tls/sse2", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT, STATX_BASIC_STATS, 0xbfc0f858) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/lib/tls/libpam.so.0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
statx(AT_FDCWD, "/lib/tls", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT, STATX_BASIC_STATS, 0xbfc0f858) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/lib/i686/sse2/libpam.so.0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
statx(AT_FDCWD, "/lib/i686/sse2", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT, STATX_BASIC_STATS, 0xbfc0f858) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/lib/i686/libpam.so.0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
statx(AT_FDCWD, "/lib/i686", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT, STATX_BASIC_STATS, 0xbfc0f858) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/lib/sse2/libpam.so.0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
statx(AT_FDCWD, "/lib/sse2", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT, STATX_BASIC_STATS, 0xbfc0f858) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/lib/libpam.so.0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\340$\0\0004\0\0\0"..., 512) = 512
pread64(3, "\4\0\0\0\30\0\0\0\5\0\0\0GNU\0\1\0\1\300\4\0\0\0\v\0\0\0\2\0\1\300"..., 40, 48216) = 40
statx(3, "", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT|AT_EMPTY_PATH, STATX_BASIC_STATS, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0755, stx_size=203948, ...}) = 0
mmap2(NULL, 53260, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7f7d000
mmap2(0xb7f7f000, 28672, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0xb7f7f000
mmap2(0xb7f86000, 12288, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x9000) = 0xb7f86000
mmap2(0xb7f89000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xb000) = 0xb7f89000
close(3)                                = 0
openat(AT_FDCWD, "tls/i686/sse2/libcrypto.so.1.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "tls/i686/libcrypto.so.1.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "tls/sse2/libcrypto.so.1.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "tls/libcrypto.so.1.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "i686/sse2/libcrypto.so.1.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "i686/libcrypto.so.1.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "sse2/libcrypto.so.1.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "libcrypto.so.1.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/opt/apps/current/usr/lib/libcrypto.so.1.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/lib/libcrypto.so.1.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/lib/tls/i686/sse2/libcrypto.so.1.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
statx(AT_FDCWD, "/usr/lib/tls/i686/sse2", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT, STATX_BASIC_STATS, 0xbfc0f828) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/lib/tls/i686/libcrypto.so.1.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
statx(AT_FDCWD, "/usr/lib/tls/i686", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT, STATX_BASIC_STATS, 0xbfc0f828) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/lib/tls/sse2/libcrypto.so.1.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
statx(AT_FDCWD, "/usr/lib/tls/sse2", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT, STATX_BASIC_STATS, 0xbfc0f828) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/lib/tls/libcrypto.so.1.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
statx(AT_FDCWD, "/usr/lib/tls", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT, STATX_BASIC_STATS, 0xbfc0f828) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/lib/i686/sse2/libcrypto.so.1.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
statx(AT_FDCWD, "/usr/lib/i686/sse2", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT, STATX_BASIC_STATS, 0xbfc0f828) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/lib/i686/libcrypto.so.1.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
statx(AT_FDCWD, "/usr/lib/i686", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT, STATX_BASIC_STATS, 0xbfc0f828) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/lib/sse2/libcrypto.so.1.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
statx(AT_FDCWD, "/usr/lib/sse2", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT, STATX_BASIC_STATS, 0xbfc0f828) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/lib/libcrypto.so.1.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\0\20\5\0004\0\0\0"..., 512) = 512
pread64(3, "\4\0\0\0\30\0\0\0\5\0\0\0GNU\0\1\0\1\300\4\0\0\0\37\0\0\0\2\0\1\300"..., 40, 2196364) = 40
statx(3, "", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT|AT_EMPTY_PATH, STATX_BASIC_STATS, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0755, stx_size=7359380, ...}) = 0
mmap2(NULL, 2321216, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7d46000
mmap2(0xb7d96000, 1318912, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x50000) = 0xb7d96000
mmap2(0xb7ed8000, 552960, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x192000) = 0xb7ed8000
mmap2(0xb7f5f000, 106496, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x218000) = 0xb7f5f000
mmap2(0xb7f79000, 15168, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7f79000
close(3)                                = 0
openat(AT_FDCWD, "tls/i686/sse2/libz.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "tls/i686/libz.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "tls/sse2/libz.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "tls/libz.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "i686/sse2/libz.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "i686/libz.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "sse2/libz.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "libz.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/opt/apps/current/usr/lib/libz.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/lib/libz.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/lib/libz.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\340\"\0\0004\0\0\0"..., 512) = 512
pread64(3, "\4\0\0\0\30\0\0\0\5\0\0\0GNU\0\1\0\1\300\4\0\0\0\t\0\0\0\2\0\1\300"..., 40, 76856) = 40
statx(3, "", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT|AT_EMPTY_PATH, STATX_BASIC_STATS, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0755, stx_size=229684, ...}) = 0
mmap2(NULL, 81932, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7d31000
mmap2(0xb7d33000, 45056, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0xb7d33000
mmap2(0xb7d3e000, 24576, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xd000) = 0xb7d3e000
mmap2(0xb7d44000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x12000) = 0xb7d44000
close(3)                                = 0
openat(AT_FDCWD, "tls/i686/sse2/libssl.so.1.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "tls/i686/libssl.so.1.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "tls/sse2/libssl.so.1.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "tls/libssl.so.1.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "i686/sse2/libssl.so.1.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "i686/libssl.so.1.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "sse2/libssl.so.1.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "libssl.so.1.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/opt/apps/current/usr/lib/libssl.so.1.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/lib/libssl.so.1.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/lib/libssl.so.1.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\300+\1\0004\0\0\0"..., 512) = 512
pread64(3, "\4\0\0\0\30\0\0\0\5\0\0\0GNU\0\1\0\1\300\4\0\0\0\t\0\0\0\2\0\1\300"..., 40, 433760) = 40
statx(3, "", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT|AT_EMPTY_PATH, STATX_BASIC_STATS, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0755, stx_size=1937564, ...}) = 0
mmap2(NULL, 470392, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7cbe000
mmap2(0xb7ccf000, 266240, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x11000) = 0xb7ccf000
mmap2(0xb7d10000, 98304, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x52000) = 0xb7d10000
mmap2(0xb7d28000, 36864, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x69000) = 0xb7d28000
close(3)                                = 0
openat(AT_FDCWD, "tls/i686/sse2/libcrypt.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "tls/i686/libcrypt.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "tls/sse2/libcrypt.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "tls/libcrypt.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "i686/sse2/libcrypt.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "i686/libcrypt.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "sse2/libcrypt.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "libcrypt.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/opt/apps/current/usr/lib/libcrypt.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/lib/libcrypt.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\300\21\0\0004\0\0\0"..., 512) = 512
statx(3, "", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT|AT_EMPTY_PATH, STATX_BASIC_STATS, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0755, stx_size=115968, ...}) = 0
mmap2(NULL, 205088, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7c8b000
mmap2(0xb7c8c000, 24576, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1000) = 0xb7c8c000
mmap2(0xb7c92000, 12288, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x7000) = 0xb7c92000
mmap2(0xb7c95000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x9000) = 0xb7c95000
mmap2(0xb7c97000, 155936, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7c97000
close(3)                                = 0
openat(AT_FDCWD, "tls/i686/sse2/libc.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "tls/i686/libc.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "tls/sse2/libc.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "tls/libc.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "i686/sse2/libc.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "i686/libc.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "sse2/libc.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "libc.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/opt/apps/current/usr/lib/libc.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/lib/libc.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\3\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\240\25\2\0004\0\0\0"..., 512) = 512
pread64(3, "\4\0\0\0\20\0\0\0\1\0\0\0GNU\0\0\0\0\0\5\0\0\0\n\0\0\0\0\0\0\0"..., 84, 468) = 84
statx(3, "", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT|AT_EMPTY_PATH, STATX_BASIC_STATS, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0755, stx_size=12543460, ...}) = 0
mmap2(NULL, 2217788, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7a6d000
mmap2(0xb7a8d000, 1482752, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x20000) = 0xb7a8d000
mmap2(0xb7bf7000, 552960, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x18a000) = 0xb7bf7000
mmap2(0xb7c7e000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x210000) = 0xb7c7e000
mmap2(0xb7c81000, 38716, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7c81000
close(3)                                = 0
openat(AT_FDCWD, "tls/i686/sse2/libatomic.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "tls/i686/libatomic.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "tls/sse2/libatomic.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "tls/libatomic.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "i686/sse2/libatomic.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "i686/libatomic.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "sse2/libatomic.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "libatomic.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/opt/apps/current/usr/lib/libatomic.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/lib/libatomic.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\220 \0\0004\0\0\0"..., 512) = 512
pread64(3, "\4\0\0\0\30\0\0\0\5\0\0\0GNU\0\1\0\1\300\4\0\0\0\v\0\0\0\2\0\1\300"..., 40, 20608) = 40
statx(3, "", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT|AT_EMPTY_PATH, STATX_BASIC_STATS, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0755, stx_size=84752, ...}) = 0
mmap2(NULL, 32832, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7a64000
mmap2(0xb7a66000, 8192, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0xb7a66000
mmap2(0xb7a68000, 8192, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x4000) = 0xb7a68000
mmap2(0xb7a6a000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x5000) = 0xb7a6a000
mmap2(0xb7a6c000, 64, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7a6c000
close(3)                                = 0
mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7a62000
set_thread_area({entry_number=-1, base_addr=0xb7a62d40, limit=0x0fffff, seg_32bit=1, contents=0, read_exec_only=0, limit_in_pages=1, seg_not_present=0, useable=1}) = 0 (entry_number=6)
set_tid_address(0xb7a62da8)             = 3973
set_robust_list(0xb7a62db0, 12)         = 0
mprotect(0xb7c7e000, 8192, PROT_READ)   = 0
mprotect(0xb7a6a000, 4096, PROT_READ)   = 0
mprotect(0xb7c95000, 4096, PROT_READ)   = 0
mprotect(0xb7f5f000, 102400, PROT_READ) = 0
mprotect(0xb7d28000, 24576, PROT_READ)  = 0
mprotect(0xb7d44000, 4096, PROT_READ)   = 0
mprotect(0xb7f89000, 4096, PROT_READ)   = 0
mprotect(0x502000, 8192, PROT_READ)     = 0
mprotect(0xb7fc3000, 8192, PROT_READ)   = 0
ugetrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY}) = 0
getrandom("\x17\xf9\xc5\x12", 4, GRND_NONBLOCK) = 4
brk(NULL)                               = 0x508000
brk(0x529000)                           = 0x529000
brk(0x52a000)                           = 0x52a000
geteuid32()                             = 0
setgroups32(0, NULL)                    = 0
openat(AT_FDCWD, "/dev/null", O_RDWR|O_LARGEFILE) = 3
close(3)                                = 0
futex(0xb7f7b5f0, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0xb7f7b5e4, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0xb7f7b5dc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0xb7f7b684, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0xb7f7b5c8, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0xb7f7b5c0, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0xb7f7b6c8, FUTEX_WAKE_PRIVATE, 2147483647) = 0
getpid()                                = 3973
getrandom("\xf4\x90\x40\xdc\xbe\x54\x05\xf6\x7f\xc6\x5c\xc5\x02\xc6\xa3\xc2\x65\x1a\xa1\xe6\xc4\xe7\x17\x69\x42\xb2\x6d\xa4\x3b\xdf\x87\xe0", 32, 0) = 32
getpid()                                = 3973
futex(0xb7f7b6a8, FUTEX_WAKE_PRIVATE, 2147483647) = 0
getpid()                                = 3973
getpid()                                = 3973
getpid()                                = 3973
getpid()                                = 3973
getpid()                                = 3973
close_range(3, 4294967295, 0)           = 0
openat(AT_FDCWD, "/var/log/sshd", O_WRONLY|O_CREAT|O_APPEND|O_LARGEFILE, 0600) = 3
getpid()                                = 3973
openat(AT_FDCWD, "/etc/ssh/sshd_config", O_RDONLY|O_LARGEFILE) = 4
statx(4, "", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT|AT_EMPTY_PATH, STATX_BASIC_STATS, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0644, stx_size=3572, ...}) = 0
statx(4, "", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT|AT_EMPTY_PATH, STATX_BASIC_STATS, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0644, stx_size=3572, ...}) = 0
read(4, "#\t$OpenBSD: sshd_config,v 1.99 2"..., 4096) = 3572
read(4, "", 4096)                       = 0
close(4)                                = 0
getpid()                                = 3973
getpid()                                = 3973
getpid()                                = 3973
getpid()                                = 3973
getpid()                                = 3973
getpid()                                = 3973
getuid32()                              = 0
getpid()                                = 3973
getpid()                                = 3973
getuid32()                              = 0
getuid32()                              = 0
getuid32()                              = 0
openat(AT_FDCWD, "/etc/gai.conf", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
futex(0xb7c84288, FUTEX_WAKE_PRIVATE, 2147483647) = 0
socket(AF_NETLINK, SOCK_RAW|SOCK_CLOEXEC, NETLINK_ROUTE) = 4
bind(4, {sa_family=AF_NETLINK, nl_pid=0, nl_groups=00000000}, 12) = 0
getsockname(4, {sa_family=AF_NETLINK, nl_pid=3973, nl_groups=00000000}, [12]) = 0
sendto(4, [{nlmsg_len=20, nlmsg_type=RTM_GETADDR, nlmsg_flags=NLM_F_REQUEST|NLM_F_DUMP, nlmsg_seq=0, nlmsg_pid=0}, {ifa_family=AF_UNSPEC, ...}], 20, 0, {sa_family=AF_NETLINK, nl_pid=0, nl_groups=00000000}, 12) = 20
recvmsg(4, {msg_name={sa_family=AF_NETLINK, nl_pid=0, nl_groups=00000000}, msg_namelen=12, msg_iov=[{iov_base=[[{nlmsg_len=76, nlmsg_type=RTM_NEWADDR, nlmsg_flags=NLM_F_MULTI, nlmsg_seq=0, nlmsg_pid=3973}, {ifa_family=AF_INET, ifa_prefixlen=8, ifa_flags=IFA_F_PERMANENT, ifa_scope=RT_SCOPE_HOST, ifa_index=if_nametoindex("lo")}, [[{nla_len=8, nla_type=IFA_ADDRESS}, inet_addr("127.0.0.1")], [{nla_len=8, nla_type=IFA_LOCAL}, inet_addr("127.0.0.1")], [{nla_len=7, nla_type=IFA_LABEL}, "lo"], [{nla_len=8, nla_type=IFA_FLAGS}, IFA_F_PERMANENT], [{nla_len=20, nla_type=IFA_CACHEINFO}, {ifa_prefered=4294967295, ifa_valid=4294967295, cstamp=2169, tstamp=2169}]]], [{nlmsg_len=88, nlmsg_type=RTM_NEWADDR, nlmsg_flags=NLM_F_MULTI, nlmsg_seq=0, nlmsg_pid=3973}, {ifa_family=AF_INET, ifa_prefixlen=24, ifa_flags=IFA_F_PERMANENT, ifa_scope=RT_SCOPE_UNIVERSE, ifa_index=if_nametoindex("eth0")}, [[{nla_len=8, nla_type=IFA_ADDRESS}, inet_addr("198.131.36.200")], [{nla_len=8, nla_type=IFA_LOCAL}, inet_addr("198.131.36.200")], [{nla_len=8, nla_type=IFA_BROADCAST}, inet_addr("198.131.36.255")], [{nla_len=9, nla_type=IFA_LABEL}, "eth0"], [{nla_len=8, nla_type=IFA_FLAGS}, IFA_F_PERMANENT], [{nla_len=20, nla_type=IFA_CACHEINFO}, {ifa_prefered=4294967295, ifa_valid=4294967295, cstamp=2172, tstamp=2172}]]]], iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 164
recvmsg(4, {msg_name={sa_family=AF_NETLINK, nl_pid=0, nl_groups=00000000}, msg_namelen=12, msg_iov=[{iov_base=[{nlmsg_len=72, nlmsg_type=RTM_NEWADDR, nlmsg_flags=NLM_F_MULTI, nlmsg_seq=0, nlmsg_pid=3973}, {ifa_family=AF_INET6, ifa_prefixlen=128, ifa_flags=IFA_F_PERMANENT, ifa_scope=RT_SCOPE_HOST, ifa_index=if_nametoindex("lo")}, [[{nla_len=20, nla_type=IFA_ADDRESS}, inet_pton(AF_INET6, "::1")], [{nla_len=20, nla_type=IFA_CACHEINFO}, {ifa_prefered=4294967295, ifa_valid=4294967295, cstamp=2169, tstamp=2169}], [{nla_len=8, nla_type=IFA_FLAGS}, IFA_F_PERMANENT]]], iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 72
recvmsg(4, {msg_name={sa_family=AF_NETLINK, nl_pid=0, nl_groups=00000000}, msg_namelen=12, msg_iov=[{iov_base=[{nlmsg_len=20, nlmsg_type=NLMSG_DONE, nlmsg_flags=NLM_F_MULTI, nlmsg_seq=0, nlmsg_pid=3973}, 0], iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 20
close(4)                                = 0
socket(AF_INET6, SOCK_DGRAM|SOCK_CLOEXEC, IPPROTO_IP) = 4
connect(4, {sa_family=AF_INET6, sin6_port=htons(22), sin6_flowinfo=htonl(0), inet_pton(AF_INET6, "::", &sin6_addr), sin6_scope_id=0}, 28) = 0
getsockname(4, {sa_family=AF_INET6, sin6_port=htons(54684), sin6_flowinfo=htonl(0), inet_pton(AF_INET6, "::1", &sin6_addr), sin6_scope_id=0}, [28]) = 0
connect(4, {sa_family=AF_UNSPEC, sa_data="\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}, 16) = 0
connect(4, {sa_family=AF_INET, sin_port=htons(22), sin_addr=inet_addr("0.0.0.0")}, 16) = 0
getsockname(4, {sa_family=AF_INET6, sin6_port=htons(33779), sin6_flowinfo=htonl(0), inet_pton(AF_INET6, "::ffff:127.0.0.1", &sin6_addr), sin6_scope_id=0}, [28]) = 0
close(4)                                = 0
getpid()                                = 3973
getuid32()                              = 0
socket(AF_UNIX, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = 4
connect(4, {sa_family=AF_UNIX, sun_path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory)
close(4)                                = 0
socket(AF_UNIX, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = 4
connect(4, {sa_family=AF_UNIX, sun_path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory)
close(4)                                = 0
statx(AT_FDCWD, "/etc/nsswitch.conf", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT, STATX_BASIC_STATS, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0644, stx_size=230, ...}) = 0
statx(AT_FDCWD, "/", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT, STATX_BASIC_STATS, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=STATX_ATTR_MOUNT_ROOT, stx_mode=S_IFDIR|0755, stx_size=4096, ...}) = 0
openat(AT_FDCWD, "/etc/nsswitch.conf", O_RDONLY|O_CLOEXEC) = 4
statx(4, "", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT|AT_EMPTY_PATH, STATX_BASIC_STATS, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0644, stx_size=230, ...}) = 0
read(4, "# /etc/nsswitch.conf\n\npasswd:   "..., 4096) = 230
read(4, "", 4096)                       = 0
statx(4, "", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT|AT_EMPTY_PATH, STATX_BASIC_STATS, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0644, stx_size=230, ...}) = 0
close(4)                                = 0
openat(AT_FDCWD, "/etc/passwd", O_RDONLY|O_CLOEXEC) = 4
statx(4, "", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT|AT_EMPTY_PATH, STATX_BASIC_STATS, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0644, stx_size=630, ...}) = 0
_llseek(4, 0, [0], SEEK_SET)            = 0
read(4, "root:x:0:0:root:/root:/bin/sh\nda"..., 4096) = 630
close(4)                                = 0
openat(AT_FDCWD, "/etc/ssh/ssh_host_rsa_key", O_RDONLY|O_LARGEFILE) = 4
statx(4, "", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT|AT_EMPTY_PATH, STATX_BASIC_STATS, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0600, stx_size=2602, ...}) = 0
getuid32()                              = 0
statx(4, "", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT|AT_EMPTY_PATH, STATX_BASIC_STATS, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0600, stx_size=2602, ...}) = 0
read(4, "-----BEGIN OPENSSH PRIVATE KEY--"..., 4096) = 2602
read(4, "", 1494)                       = 0
read(4, "", 4096)                       = 0
futex(0xb7f7b4e4, FUTEX_WAKE_PRIVATE, 2147483647) = 0
getpid()                                = 3973
getpid()                                = 3973
getpid()                                = 3973
getpid()                                = 3973
getpid()                                = 3973
getpid()                                = 3973
close(4)                                = 0
getpid()                                = 3973
openat(AT_FDCWD, "/etc/ssh/ssh_host_rsa_key", O_RDONLY|O_LARGEFILE) = 4
statx(4, "", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT|AT_EMPTY_PATH, STATX_BASIC_STATS, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0600, stx_size=2602, ...}) = 0
read(4, "-----BEGIN OPENSSH PRIVATE KEY--"..., 4096) = 2602
close(4)                                = 0
openat(AT_FDCWD, "/etc/ssh/ssh_host_rsa_key.pub", O_RDONLY|O_LARGEFILE) = 4
statx(4, "", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT|AT_EMPTY_PATH, STATX_BASIC_STATS, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0644, stx_size=566, ...}) = 0
read(4, "ssh-rsa AAAAB3NzaC1yc2EAAAADAQAB"..., 4096) = 566
close(4)                                = 0
getpid()                                = 3973
getpid()                                = 3973
getpid()                                = 3973
getpid()                                = 3973
openat(AT_FDCWD, "/etc/ssh/ssh_host_ecdsa_key", O_RDONLY|O_LARGEFILE) = 4
statx(4, "", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT|AT_EMPTY_PATH, STATX_BASIC_STATS, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0600, stx_size=505, ...}) = 0
getuid32()                              = 0
statx(4, "", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT|AT_EMPTY_PATH, STATX_BASIC_STATS, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0600, stx_size=505, ...}) = 0
read(4, "-----BEGIN OPENSSH PRIVATE KEY--"..., 4096) = 505
read(4, "", 3591)                       = 0
read(4, "", 4096)                       = 0
close(4)                                = 0
getpid()                                = 3973
openat(AT_FDCWD, "/etc/ssh/ssh_host_ecdsa_key", O_RDONLY|O_LARGEFILE) = 4
statx(4, "", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT|AT_EMPTY_PATH, STATX_BASIC_STATS, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0600, stx_size=505, ...}) = 0
read(4, "-----BEGIN OPENSSH PRIVATE KEY--"..., 4096) = 505
close(4)                                = 0
openat(AT_FDCWD, "/etc/ssh/ssh_host_ecdsa_key.pub", O_RDONLY|O_LARGEFILE) = 4
statx(4, "", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT|AT_EMPTY_PATH, STATX_BASIC_STATS, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0644, stx_size=174, ...}) = 0
read(4, "ecdsa-sha2-nistp256 AAAAE2VjZHNh"..., 4096) = 174
close(4)                                = 0
getpid()                                = 3973
getpid()                                = 3973
openat(AT_FDCWD, "/etc/ssh/ssh_host_ed25519_key", O_RDONLY|O_LARGEFILE) = 4
statx(4, "", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT|AT_EMPTY_PATH, STATX_BASIC_STATS, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0600, stx_size=399, ...}) = 0
getuid32()                              = 0
statx(4, "", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT|AT_EMPTY_PATH, STATX_BASIC_STATS, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0600, stx_size=399, ...}) = 0
read(4, "-----BEGIN OPENSSH PRIVATE KEY--"..., 4096) = 399
read(4, "", 3697)                       = 0
read(4, "", 4096)                       = 0
close(4)                                = 0
getpid()                                = 3973
openat(AT_FDCWD, "/etc/ssh/ssh_host_ed25519_key", O_RDONLY|O_LARGEFILE) = 4
statx(4, "", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT|AT_EMPTY_PATH, STATX_BASIC_STATS, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0600, stx_size=399, ...}) = 0
read(4, "-----BEGIN OPENSSH PRIVATE KEY--"..., 4096) = 399
close(4)                                = 0
openat(AT_FDCWD, "/etc/ssh/ssh_host_ed25519_key.pub", O_RDONLY|O_LARGEFILE) = 4
statx(4, "", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT|AT_EMPTY_PATH, STATX_BASIC_STATS, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0644, stx_size=94, ...}) = 0
read(4, "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5"..., 4096) = 94
close(4)                                = 0
getpid()                                = 3973
getpid()                                = 3973
statx(AT_FDCWD, "/var/empty", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT, STATX_BASIC_STATS, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0755, stx_size=4096, ...}) = 0
setgroups32(0, NULL)                    = 0
getpid()                                = 3973
getpid()                                = 3973
getpid()                                = 3973
umask(077)                              = 022
umask(022)                              = 077
openat(AT_FDCWD, "/dev/tty", O_RDONLY|O_NOCTTY|O_LARGEFILE) = 4
close(4)                                = 0
clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0xb7a62da8) = 3974
exit_group(0)                           = ?
+++ exited with 0 +++
daemon() failed: Value too large for defined data type

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: PROBLEM: with daemon.c after y2038 on 32-bits Kernel
  2022-05-17  7:51 PROBLEM: with daemon.c after y2038 on 32-bits Kernel Arnaud Panaïotis
@ 2022-05-30  7:03 ` Arnaud Panaïotis
  0 siblings, 0 replies; 8+ messages in thread
From: Arnaud Panaïotis @ 2022-05-30  7:03 UTC (permalink / raw)
  To: linux-kernel

Hello,

I send a mail for this two weeks ago but didn't get any answer, I'm not
sure you received it or if a ticket has been open.

Could you provide me a feedback?

Let me know if you need more information.

Regards,

On 17/05/2022 09:51, Arnaud Panaïotis wrote:
> Hello,
>
> I'm working for a client to generate embedded 32-bits Linux Kernel working after y2038 issue.
>
> I generated a 5.15 Kernel thought Buildroot with Coreutils 9.0, GCC 11.2.0, Binutils 2.37, Glibc 2.34-9 and CFLAGS  -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -D_TIME_BITS=64.
>
> I encounter an issue while working with OpenSSH (I initially contacted them before).
>
> After 2038, /usr/sbin/sshd does not create an error but it child does generate this one:
> daemon() failed: Value too large for defined data type
>
> This happend here in sshd.c:
>
> 2019         /*
> 2020          * If not in debugging mode, not started from inetd and not already
> 2021          * daemonized (eg re-exec via SIGHUP), disconnect from the controlling
> 2022          * terminal, and fork.  The original process exits.
> 2023          */
> 2024         already_daemon = daemonized();
> 2025         if (!(debug_flag || inetd_flag || no_daemon_flag || already_daemon)) {
> 2026
> 2027                 if (daemon(0, 0) == -1)
> 2028                         fatal("daemon() failed: %.200s", strerror(errno));
>
> To reproduce:
>
> # date -s "2040-05-12"
> # hwclock --systohc
> # reboot
> # /usr/sbin/sshd
>
> Note this error occurs only after the reboot, and setting a date before 2038 also require a reboot to remove the error.
>
> strace and gdb trace linked.
>
> Let me know if you need additional information.
>
> Best regards,
>
> PS: I had a similar issue with binutils cp
> Discussion : debbugs.gnu.org/cgi/bugreport.cgi?bug=55023
> Fix : sourceware.org/bugzilla/show_bug.cgi?id=29097
>
> --
> Arnaud PANAÏOTIS | Lead Developer Freelance
> +33 6 34 82 12 62 | arnaud.panaiotis@gmx.fr
>
> 18 place Jean Moulin - 38000 Grenoble
> APsudo - www.panaiotis.fr
--

*Arnaud PANAÏOTIS* | Lead Developer Freelance
+33 6 34 82 12 62 | arnaud.panaiotis@gmx.fr <mailto:Arnaud Panaïotis
<arnaud.panaiotis@gmx.fr>>

18 place Jean Moulin - 38000 Grenoble
APsudo - www.panaiotis.fr <https://www.panaiotis.fr>

--
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: PROBLEM: with daemon.c after y2038 on 32-bits Kernel
  2022-05-31 13:02       ` Szabolcs Nagy
@ 2022-05-31 13:24         ` Arnaud Panaïotis
  0 siblings, 0 replies; 8+ messages in thread
From: Arnaud Panaïotis @ 2022-05-31 13:24 UTC (permalink / raw)
  To: Szabolcs Nagy
  Cc: Adhemerval Zanella, Arnd Bergmann, y2038, libc-alpha, linux-kernel


On 31/05/2022 15:02, Szabolcs Nagy wrote:
> The 05/31/2022 14:16, Arnaud Panaïotis via Libc-alpha wrote:
>>>>> If I'm reading this correctly, daemon() internally uses the time32
>>>>> version of 'stat', which fails for files with out-of-range timestamps.
>>>>> Are you able to rebuild the ssh binary (or your entire distro, if that's
>>>>> easier) against musl-1.2.x instead of glibc to see if the same thing
>>>>> happens there?
>> Musl did not worked previously for me, not sure for openssh only within
>> Buildroot.
> did you have a specific issue with musl?
>
> it is supposed to work with buildroot and
> has 64bit time_t support out of the box.

Not really, I'm working on an existing project that was developed before
with Glibc. If I remember correctly some packages used by the project
did not build with musl (even with the previous version of Kernel).

The purpose of my mission was to analyze how to pass y2038 on embedded
devices (2 Linux and 1 Windows), now is to build the solution.

Upgrading Glibc and Buildroot were easier than switching to musl due
what was done before. I probably would have to change many elements
(packages, init scripts...) if I'd switched to musl.

Now both y2038 Linux works with glibc, this subject is the third I
raised (mysqld solved by a patch I made, cp binutils with issue from
fchmodat (bug 29097)).


--
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: PROBLEM: with daemon.c after y2038 on 32-bits Kernel
  2022-05-31 12:16     ` Arnaud Panaïotis
@ 2022-05-31 13:02       ` Szabolcs Nagy
  2022-05-31 13:24         ` Arnaud Panaïotis
  0 siblings, 1 reply; 8+ messages in thread
From: Szabolcs Nagy @ 2022-05-31 13:02 UTC (permalink / raw)
  To: Arnaud Panaïotis
  Cc: Adhemerval Zanella, Arnd Bergmann, y2038, libc-alpha, linux-kernel

The 05/31/2022 14:16, Arnaud Panaïotis via Libc-alpha wrote:
> > > > If I'm reading this correctly, daemon() internally uses the time32
> > > > version of 'stat', which fails for files with out-of-range timestamps.
> > > > Are you able to rebuild the ssh binary (or your entire distro, if that's
> > > > easier) against musl-1.2.x instead of glibc to see if the same thing
> > > > happens there?
> 
> Musl did not worked previously for me, not sure for openssh only within
> Buildroot.

did you have a specific issue with musl?

it is supposed to work with buildroot and
has 64bit time_t support out of the box.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: PROBLEM: with daemon.c after y2038 on 32-bits Kernel
  2022-05-31 10:54   ` Adhemerval Zanella
@ 2022-05-31 12:16     ` Arnaud Panaïotis
  2022-05-31 13:02       ` Szabolcs Nagy
  0 siblings, 1 reply; 8+ messages in thread
From: Arnaud Panaïotis @ 2022-05-31 12:16 UTC (permalink / raw)
  To: Adhemerval Zanella, Arnd Bergmann; +Cc: y2038, libc-alpha, linux-kernel

Hello,

On 31/05/2022 12:54, Adhemerval Zanella wrote:
>
> On 31/05/2022 05:33, Arnd Bergmann via Libc-alpha wrote:
>> (cc correct libc-alpha list, sorry for the typo)
>>
>> On Tue, May 31, 2022 at 10:24 AM Arnd Bergmann <arnd@kernel.org> wrote:
>>> On 17/05/2022 09:51, Arnaud Panaïotis wrote:
>>>> I'm working for a client to generate embedded 32-bits Linux Kernel working after y2038 issue.
>>>>
>>>> I generated a 5.15 Kernel thought Buildroot with Coreutils 9.0, GCC 11.2.0, Binutils 2.37, Glibc 2.34-9 and CFLAGS  -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -D_TIME_BITS=64.
>>>>
>>>> I encounter an issue while working with OpenSSH (I initially contacted them before).
>>> To clarify: did you build just openssh with  -D_TIME_BITS=64, or did
>>> you build the entire user space this way?

I made a patch for the whole Builroot, this way all packages are built
with it (unless it is filter-out, I had to make few patches).

Option is present in build log for daemon.c and sshd.c

>>>
>>>> After 2038, /usr/sbin/sshd does not create an error but it child does generate this one:
>>>> daemon() failed: Value too large for defined data type
>>>>
>>>> This happend here in sshd.c:
>>>>
>>>> 2019         /*
>>>> 2020          * If not in debugging mode, not started from inetd and not already
>>>> 2021          * daemonized (eg re-exec via SIGHUP), disconnect from the controlling
>>>> 2022          * terminal, and fork.  The original process exits.
>>>> 2023          */
>>>> 2024         already_daemon = daemonized();
>>>> 2025         if (!(debug_flag || inetd_flag || no_daemon_flag || already_daemon)) {
>>>> 2026
>>>> 2027                 if (daemon(0, 0) == -1)
>>>> 2028                         fatal("daemon() failed: %.200s", strerror(errno));
>>> My guess is that there are parts of glibc that are not fully
>>> y2038-safe at the moment, but
>>> merely provide the interfaces for time64 applications.
>>>
>>>
>>> In the glibc code, I see
>>>
>>> int
>>> daemon (int nochdir, int noclose)
>>> {
>>> ...
>>>                  if ((fd = __open_nocancel(_PATH_DEVNULL, O_RDWR, 0)) != -1
>>>                      && (__builtin_expect (__fstat64 (fd, &st), 0)
>>>                          == 0)) {
>>> ...
>>>                               } else {
>>>                          __close_nocancel_nostatus (fd);
>>>                          return -1;
>>>                  }
>>>       return (0);
>>> }
> Thanks for catching it, I have opened a bug report for it [1] and I will fix
> and backport to 2.34 and 2.35.
>
> [1] https://sourceware.org/bugzilla/show_bug.cgi?id=29203
Thanks, I'll watch this.
>
>>> __fstatat64 (int fd, const char *file, struct stat64 *buf, int flags)
>>> {
>>>    struct __stat64_t64 st_t64;
>>>    return __fstatat64_time64 (fd, file, &st_t64, flags)
>>>           ?: __cp_stat64_t64_stat64 (&st_t64, buf);
>>> }
>>>
>>> If I'm reading this correctly, daemon() internally uses the time32
>>> version of 'stat', which fails for files with out-of-range timestamps.
>>> Are you able to rebuild the ssh binary (or your entire distro, if that's
>>> easier) against musl-1.2.x instead of glibc to see if the same thing
>>> happens there?

Musl did not worked previously for me, not sure for openssh only within
Buildroot.

I'll test the patch from ticket 29203, probably the easiest solution for me.

>>>
>>>         Arnd
>>>
>>>> To reproduce:
>>>>
>>>> # date -s "2040-05-12"
>>>> # hwclock --systohc
>>>> # reboot
>>>> # /usr/sbin/sshd
>>>>
>>>> Note this error occurs only after the reboot, and setting a date before 2038 also require a reboot to remove the error.
>>>>
>>>> strace and gdb trace linked.
>>>>
>>>> Let me know if you need additional information.
--

*Arnaud PANAÏOTIS* | Lead Developer Freelance
+33 6 34 82 12 62 | arnaud.panaiotis@gmx.fr <mailto:Arnaud Panaïotis
<arnaud.panaiotis@gmx.fr>>

18 place Jean Moulin - 38000 Grenoble
APsudo - www.panaiotis.fr <https://www.panaiotis.fr>

--
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: PROBLEM: with daemon.c after y2038 on 32-bits Kernel
  2022-05-31  8:33 ` Arnd Bergmann
@ 2022-05-31 10:54   ` Adhemerval Zanella
  2022-05-31 12:16     ` Arnaud Panaïotis
  0 siblings, 1 reply; 8+ messages in thread
From: Adhemerval Zanella @ 2022-05-31 10:54 UTC (permalink / raw)
  To: Arnd Bergmann, Arnaud Panaïotis; +Cc: y2038, libc-alpha, linux-kernel



On 31/05/2022 05:33, Arnd Bergmann via Libc-alpha wrote:
> (cc correct libc-alpha list, sorry for the typo)
> 
> On Tue, May 31, 2022 at 10:24 AM Arnd Bergmann <arnd@kernel.org> wrote:
>> On 17/05/2022 09:51, Arnaud Panaïotis wrote:
>>> I'm working for a client to generate embedded 32-bits Linux Kernel working after y2038 issue.
>>>
>>> I generated a 5.15 Kernel thought Buildroot with Coreutils 9.0, GCC 11.2.0, Binutils 2.37, Glibc 2.34-9 and CFLAGS  -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -D_TIME_BITS=64.
>>>
>>> I encounter an issue while working with OpenSSH (I initially contacted them before).
>>
>> To clarify: did you build just openssh with  -D_TIME_BITS=64, or did
>> you build the entire user space this way?
>>
>>> After 2038, /usr/sbin/sshd does not create an error but it child does generate this one:
>>> daemon() failed: Value too large for defined data type
>>>
>>> This happend here in sshd.c:
>>>
>>> 2019         /*
>>> 2020          * If not in debugging mode, not started from inetd and not already
>>> 2021          * daemonized (eg re-exec via SIGHUP), disconnect from the controlling
>>> 2022          * terminal, and fork.  The original process exits.
>>> 2023          */
>>> 2024         already_daemon = daemonized();
>>> 2025         if (!(debug_flag || inetd_flag || no_daemon_flag || already_daemon)) {
>>> 2026
>>> 2027                 if (daemon(0, 0) == -1)
>>> 2028                         fatal("daemon() failed: %.200s", strerror(errno));
>>
>> My guess is that there are parts of glibc that are not fully
>> y2038-safe at the moment, but
>> merely provide the interfaces for time64 applications.
>>
>>
>> In the glibc code, I see
>>
>> int
>> daemon (int nochdir, int noclose)
>> {
>> ...
>>                 if ((fd = __open_nocancel(_PATH_DEVNULL, O_RDWR, 0)) != -1
>>                     && (__builtin_expect (__fstat64 (fd, &st), 0)
>>                         == 0)) {
>> ...
>>                              } else {
>>                         __close_nocancel_nostatus (fd);
>>                         return -1;
>>                 }
>>      return (0);
>> }

Thanks for catching it, I have opened a bug report for it [1] and I will fix
and backport to 2.34 and 2.35.

[1] https://sourceware.org/bugzilla/show_bug.cgi?id=29203

>>
>> __fstatat64 (int fd, const char *file, struct stat64 *buf, int flags)
>> {
>>   struct __stat64_t64 st_t64;
>>   return __fstatat64_time64 (fd, file, &st_t64, flags)
>>          ?: __cp_stat64_t64_stat64 (&st_t64, buf);
>> }
>>
>> If I'm reading this correctly, daemon() internally uses the time32
>> version of 'stat', which fails for files with out-of-range timestamps.
>> Are you able to rebuild the ssh binary (or your entire distro, if that's
>> easier) against musl-1.2.x instead of glibc to see if the same thing
>> happens there?
>>
>>        Arnd
>>
>>> To reproduce:
>>>
>>> # date -s "2040-05-12"
>>> # hwclock --systohc
>>> # reboot
>>> # /usr/sbin/sshd
>>>
>>> Note this error occurs only after the reboot, and setting a date before 2038 also require a reboot to remove the error.
>>>
>>> strace and gdb trace linked.
>>>
>>> Let me know if you need additional information.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: PROBLEM: with daemon.c after y2038 on 32-bits Kernel
  2022-05-31  8:24 Arnd Bergmann
@ 2022-05-31  8:33 ` Arnd Bergmann
  2022-05-31 10:54   ` Adhemerval Zanella
  0 siblings, 1 reply; 8+ messages in thread
From: Arnd Bergmann @ 2022-05-31  8:33 UTC (permalink / raw)
  To: Arnaud Panaïotis; +Cc: linux-kernel, y2038, libc-alpha

(cc correct libc-alpha list, sorry for the typo)

On Tue, May 31, 2022 at 10:24 AM Arnd Bergmann <arnd@kernel.org> wrote:
> On 17/05/2022 09:51, Arnaud Panaïotis wrote:
> > I'm working for a client to generate embedded 32-bits Linux Kernel working after y2038 issue.
> >
> > I generated a 5.15 Kernel thought Buildroot with Coreutils 9.0, GCC 11.2.0, Binutils 2.37, Glibc 2.34-9 and CFLAGS  -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -D_TIME_BITS=64.
> >
> > I encounter an issue while working with OpenSSH (I initially contacted them before).
>
> To clarify: did you build just openssh with  -D_TIME_BITS=64, or did
> you build the entire user space this way?
>
> > After 2038, /usr/sbin/sshd does not create an error but it child does generate this one:
> > daemon() failed: Value too large for defined data type
> >
> > This happend here in sshd.c:
> >
> > 2019         /*
> > 2020          * If not in debugging mode, not started from inetd and not already
> > 2021          * daemonized (eg re-exec via SIGHUP), disconnect from the controlling
> > 2022          * terminal, and fork.  The original process exits.
> > 2023          */
> > 2024         already_daemon = daemonized();
> > 2025         if (!(debug_flag || inetd_flag || no_daemon_flag || already_daemon)) {
> > 2026
> > 2027                 if (daemon(0, 0) == -1)
> > 2028                         fatal("daemon() failed: %.200s", strerror(errno));
>
> My guess is that there are parts of glibc that are not fully
> y2038-safe at the moment, but
> merely provide the interfaces for time64 applications.
>
>
> In the glibc code, I see
>
> int
> daemon (int nochdir, int noclose)
> {
> ...
>                 if ((fd = __open_nocancel(_PATH_DEVNULL, O_RDWR, 0)) != -1
>                     && (__builtin_expect (__fstat64 (fd, &st), 0)
>                         == 0)) {
> ...
>                              } else {
>                         __close_nocancel_nostatus (fd);
>                         return -1;
>                 }
>      return (0);
> }
>
> __fstatat64 (int fd, const char *file, struct stat64 *buf, int flags)
> {
>   struct __stat64_t64 st_t64;
>   return __fstatat64_time64 (fd, file, &st_t64, flags)
>          ?: __cp_stat64_t64_stat64 (&st_t64, buf);
> }
>
> If I'm reading this correctly, daemon() internally uses the time32
> version of 'stat', which fails for files with out-of-range timestamps.
> Are you able to rebuild the ssh binary (or your entire distro, if that's
> easier) against musl-1.2.x instead of glibc to see if the same thing
> happens there?
>
>        Arnd
>
> > To reproduce:
> >
> > # date -s "2040-05-12"
> > # hwclock --systohc
> > # reboot
> > # /usr/sbin/sshd
> >
> > Note this error occurs only after the reboot, and setting a date before 2038 also require a reboot to remove the error.
> >
> > strace and gdb trace linked.
> >
> > Let me know if you need additional information.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: PROBLEM: with daemon.c after y2038 on 32-bits Kernel
@ 2022-05-31  8:24 Arnd Bergmann
  2022-05-31  8:33 ` Arnd Bergmann
  0 siblings, 1 reply; 8+ messages in thread
From: Arnd Bergmann @ 2022-05-31  8:24 UTC (permalink / raw)
  To: Arnaud Panaïotis; +Cc: linux-kernel, y2038, alpha

On 17/05/2022 09:51, Arnaud Panaïotis wrote:
> Hello,
>
> I'm working for a client to generate embedded 32-bits Linux Kernel working after y2038 issue.
>
> I generated a 5.15 Kernel thought Buildroot with Coreutils 9.0, GCC 11.2.0, Binutils 2.37, Glibc 2.34-9 and CFLAGS  -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -D_TIME_BITS=64.
>
> I encounter an issue while working with OpenSSH (I initially contacted them before).

To clarify: did you build just openssh with  -D_TIME_BITS=64, or did
you build the user space
this way?

> After 2038, /usr/sbin/sshd does not create an error but it child does generate this one:
> daemon() failed: Value too large for defined data type
>
> This happend here in sshd.c:
>
> 2019         /*
> 2020          * If not in debugging mode, not started from inetd and not already
> 2021          * daemonized (eg re-exec via SIGHUP), disconnect from the controlling
> 2022          * terminal, and fork.  The original process exits.
> 2023          */
> 2024         already_daemon = daemonized();
> 2025         if (!(debug_flag || inetd_flag || no_daemon_flag || already_daemon)) {
> 2026
> 2027                 if (daemon(0, 0) == -1)
> 2028                         fatal("daemon() failed: %.200s", strerror(errno));

My guess is that there are parts of glibc that are not fully
y2038-safe at the moment, but
merely provide the interfaces for time64 applications.


In the glibc code, I see

int
daemon (int nochdir, int noclose)
{
...
                if ((fd = __open_nocancel(_PATH_DEVNULL, O_RDWR, 0)) != -1
                    && (__builtin_expect (__fstat64 (fd, &st), 0)
                        == 0)) {
...
                             } else {
                        __close_nocancel_nostatus (fd);
                        return -1;
                }
     return (0);
}

__fstatat64 (int fd, const char *file, struct stat64 *buf, int flags)
{
  struct __stat64_t64 st_t64;
  return __fstatat64_time64 (fd, file, &st_t64, flags)
         ?: __cp_stat64_t64_stat64 (&st_t64, buf);
}

If I'm reading this correctly, daemon() internally uses the time32
version of 'stat', which
fails for files with out-of-range timestamps. Are you able to rebuild
the ssh binary
(or your entire distro, if that's easier) against musl-1.2.x instead
of glibc to see if the
same thing happens there?

       Arnd

> To reproduce:
>
> # date -s "2040-05-12"
> # hwclock --systohc
> # reboot
> # /usr/sbin/sshd
>
> Note this error occurs only after the reboot, and setting a date before 2038 also require a reboot to remove the error.
>
> strace and gdb trace linked.
>
> Let me know if you need additional information.

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2022-05-31 13:24 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-05-17  7:51 PROBLEM: with daemon.c after y2038 on 32-bits Kernel Arnaud Panaïotis
2022-05-30  7:03 ` Arnaud Panaïotis
2022-05-31  8:24 Arnd Bergmann
2022-05-31  8:33 ` Arnd Bergmann
2022-05-31 10:54   ` Adhemerval Zanella
2022-05-31 12:16     ` Arnaud Panaïotis
2022-05-31 13:02       ` Szabolcs Nagy
2022-05-31 13:24         ` Arnaud Panaïotis

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).