Bugzilla – Bug 755
unable to allocate memory (linux47 only)
Last modified: 2016-09-20 15:15:51 MDT
On Manjaro (Archlinux), when trying to build 32bit packages in a chroot on a 64bit system with kernel linux47 we receive this error: sudo: main: unable to allocate memory This happens only when using linux47 and with a chroot of different architecture. No problem with other kernels and/or when building the host architecture. Maybe related in a way to https://bugzilla.sudo.ws/show_bug.cgi?id=706 ? sudo version 1.8.17.p1
It's possible that this is due to sudo not being able to get the process's tty name. Please add the following line to /etc/sudo.conf (creating it as needed): Debug sudo /var/log/sudo_debug all@debug and attach the debug log to this bug.
Created attachment 483 [details] sudo_debug as requested Thank you. log attached.
I was hoping to get a debug log from when sudo received the "unable to allocate memory" failure, the one you attached doesn't appear to be failing. Perhaps the sudo.conf file needs to be inside the chroot?
Yes, of course! ;) The config and log need to be inside the chroot. Here you go. Looks like you were right about tty name being null...
Sep 1 21:17:34 sudo[17763] -> sudo_check_suid @ ./sudo.c:829 Sep 1 21:17:34 sudo[17763] <- sudo_check_suid @ ./sudo.c:873 Sep 1 21:17:34 sudo[17763] -> save_signals @ ./signal.c:65 Sep 1 21:17:34 sudo[17763] <- save_signals @ ./signal.c:72 Sep 1 21:17:34 sudo[17763] -> init_signals @ ./signal.c:122 Sep 1 21:17:34 sudo[17763] -> pipe_nonblock @ ./exec.c:980 Sep 1 21:17:34 sudo[17763] <- pipe_nonblock @ ./exec.c:998 := 0 Sep 1 21:17:34 sudo[17763] <- init_signals @ ./signal.c:162 Sep 1 21:17:34 sudo[17763] -> sudo_conf_read_v1 @ ./sudo_conf.c:562 Sep 1 21:17:34 sudo[17763] -> sudo_secure_path @ ./secure_path.c:43 Sep 1 21:17:34 sudo[17763] <- sudo_secure_path @ ./secure_path.c:62 := 0 Sep 1 21:17:34 sudo[17763] -> sudo_parseln_v1 @ ./parseln.c:55 Sep 1 21:17:34 sudo[17763] <- sudo_parseln_v1 @ ./parseln.c:118 := 40 Sep 1 21:17:34 sudo[17763] -> sudo_parseln_v1 @ ./parseln.c:55 Sep 1 21:17:34 sudo[17763] <- sudo_parseln_v1 @ ./parseln.c:118 := 0 Sep 1 21:17:34 sudo[17763] -> sudo_parseln_v1 @ ./parseln.c:55 Sep 1 21:17:34 sudo[17763] <- sudo_parseln_v1 @ ./parseln.c:117 := -1 Sep 1 21:17:34 sudo[17763] <- sudo_conf_read_v1 @ ./sudo_conf.c:651 := 1 Sep 1 21:17:34 sudo[17763] -> get_user_info @ ./sudo.c:496 Sep 1 21:17:34 sudo[17763] -> sudo_new_key_val_v1 @ ./key_val.c:44 Sep 1 21:17:34 sudo[17763] <- sudo_new_key_val_v1 @ ./key_val.c:56 := user=root Sep 1 21:17:34 sudo[17763] -> get_user_groups @ ./sudo.c:434 Sep 1 21:17:34 sudo[17763] <- get_user_groups @ ./sudo.c:480 := groups=0,1,2,3,4,6,10,19 Sep 1 21:17:34 sudo[17763] -> sudo_new_key_val_v1 @ ./key_val.c:44 Sep 1 21:17:34 sudo[17763] <- sudo_new_key_val_v1 @ ./key_val.c:56 := cwd=/startdir Sep 1 21:17:34 sudo[17763] -> get_process_ttyname @ ./ttyname.c:484 Sep 1 21:17:34 sudo[17763] -> sudo_ttyname_dev @ ./ttyname.c:320 Sep 1 21:17:34 sudo[17763] comparing dev 34817 to /dev/pts/1: no @ sudo_ttyname_dev() ./ttyname.c:345 Sep 1 21:17:34 sudo[17763] -> sudo_ttyname_scan @ ./ttyname.c:181 Sep 1 21:17:34 sudo[17763] <- sudo_ttyname_scan @ ./ttyname.c:305 := (null) Sep 1 21:17:34 sudo[17763] -> sudo_ttyname_scan @ ./ttyname.c:181 Sep 1 21:17:34 sudo[17763] <- sudo_ttyname_scan @ ./ttyname.c:305 := (null) Sep 1 21:17:34 sudo[17763] -> sudo_ttyname_scan @ ./ttyname.c:181 Sep 1 21:17:34 sudo[17763] <- sudo_ttyname_scan @ ./ttyname.c:305 := (null) Sep 1 21:17:34 sudo[17763] -> sudo_ttyname_scan @ ./ttyname.c:181 Sep 1 21:17:34 sudo[17763] scanning for dev 34817 in /dev/ @ sudo_ttyname_scan() ./ttyname.c:187 Sep 1 21:17:34 sudo[17763] -> sudo_ttyname_scan @ ./ttyname.c:181 Sep 1 21:17:34 sudo[17763] scanning for dev 34817 in /dev/v4l @ sudo_ttyname_scan() ./ttyname.c:187 Sep 1 21:17:34 sudo[17763] -> sudo_ttyname_scan @ ./ttyname.c:181 Sep 1 21:17:34 sudo[17763] scanning for dev 34817 in /dev/v4l/by-path @ sudo_ttyname_scan() ./ttyname.c:187 Sep 1 21:17:34 sudo[17763] <- sudo_ttyname_scan @ ./ttyname.c:305 := (null) Sep 1 21:17:34 sudo[17763] -> sudo_ttyname_scan @ ./ttyname.c:181 Sep 1 21:17:34 sudo[17763] scanning for dev 34817 in /dev/v4l/by-id @ sudo_ttyname_scan() ./ttyname.c:187 Sep 1 21:17:34 sudo[17763] <- sudo_ttyname_scan @ ./ttyname.c:305 := (null) Sep 1 21:17:34 sudo[17763] <- sudo_ttyname_scan @ ./ttyname.c:305 := (null) Sep 1 21:17:34 sudo[17763] -> sudo_ttyname_scan @ ./ttyname.c:181 Sep 1 21:17:34 sudo[17763] scanning for dev 34817 in /dev/vboxusb @ sudo_ttyname_scan() ./ttyname.c:187 Sep 1 21:17:34 sudo[17763] -> sudo_ttyname_scan @ ./ttyname.c:181 Sep 1 21:17:34 sudo[17763] scanning for dev 34817 in /dev/vboxusb/001 @ sudo_ttyname_scan() ./ttyname.c:187 Sep 1 21:17:34 sudo[17763] <- sudo_ttyname_scan @ ./ttyname.c:305 := (null) Sep 1 21:17:34 sudo[17763] <- sudo_ttyname_scan @ ./ttyname.c:305 := (null) Sep 1 21:17:34 sudo[17763] -> sudo_ttyname_scan @ ./ttyname.c:181 Sep 1 21:17:34 sudo[17763] scanning for dev 34817 in /dev/dri @ sudo_ttyname_scan() ./ttyname.c:187 Sep 1 21:17:34 sudo[17763] <- sudo_ttyname_scan @ ./ttyname.c:305 := (null) Sep 1 21:17:34 sudo[17763] -> sudo_ttyname_scan @ ./ttyname.c:181 Sep 1 21:17:34 sudo[17763] scanning for dev 34817 in /dev/input @ sudo_ttyname_scan() ./ttyname.c:187 Sep 1 21:17:34 sudo[17763] -> sudo_ttyname_scan @ ./ttyname.c:181 Sep 1 21:17:34 sudo[17763] scanning for dev 34817 in /dev/input/by-id @ sudo_ttyname_scan() ./ttyname.c:187 Sep 1 21:17:34 sudo[17763] <- sudo_ttyname_scan @ ./ttyname.c:305 := (null) Sep 1 21:17:34 sudo[17763] -> sudo_ttyname_scan @ ./ttyname.c:181 Sep 1 21:17:34 sudo[17763] scanning for dev 34817 in /dev/input/by-path @ sudo_ttyname_scan() ./ttyname.c:187 Sep 1 21:17:34 sudo[17763] <- sudo_ttyname_scan @ ./ttyname.c:305 := (null) Sep 1 21:17:34 sudo[17763] <- sudo_ttyname_scan @ ./ttyname.c:305 := (null) Sep 1 21:17:34 sudo[17763] -> sudo_ttyname_scan @ ./ttyname.c:181 Sep 1 21:17:34 sudo[17763] scanning for dev 34817 in /dev/snd @ sudo_ttyname_scan() ./ttyname.c:187 Sep 1 21:17:34 sudo[17763] -> sudo_ttyname_scan @ ./ttyname.c:181 Sep 1 21:17:34 sudo[17763] scanning for dev 34817 in /dev/snd/by-path @ sudo_ttyname_scan() ./ttyname.c:187 Sep 1 21:17:34 sudo[17763] <- sudo_ttyname_scan @ ./ttyname.c:305 := (null) Sep 1 21:17:34 sudo[17763] <- sudo_ttyname_scan @ ./ttyname.c:305 := (null) Sep 1 21:17:34 sudo[17763] -> sudo_ttyname_scan @ ./ttyname.c:181 Sep 1 21:17:34 sudo[17763] scanning for dev 34817 in /dev/vfio @ sudo_ttyname_scan() ./ttyname.c:187 Sep 1 21:17:34 sudo[17763] <- sudo_ttyname_scan @ ./ttyname.c:305 := (null) Sep 1 21:17:34 sudo[17763] -> sudo_ttyname_scan @ ./ttyname.c:181 Sep 1 21:17:34 sudo[17763] scanning for dev 34817 in /dev/mapper @ sudo_ttyname_scan() ./ttyname.c:187 Sep 1 21:17:34 sudo[17763] <- sudo_ttyname_scan @ ./ttyname.c:305 := (null) Sep 1 21:17:34 sudo[17763] -> sudo_ttyname_scan @ ./ttyname.c:181 Sep 1 21:17:34 sudo[17763] scanning for dev 34817 in /dev/net @ sudo_ttyname_scan() ./ttyname.c:187 Sep 1 21:17:34 sudo[17763] <- sudo_ttyname_scan @ ./ttyname.c:305 := (null) Sep 1 21:17:34 sudo[17763] -> sudo_ttyname_scan @ ./ttyname.c:181 Sep 1 21:17:34 sudo[17763] scanning for dev 34817 in /dev/mqueue @ sudo_ttyname_scan() ./ttyname.c:187 Sep 1 21:17:34 sudo[17763] <- sudo_ttyname_scan @ ./ttyname.c:305 := (null) Sep 1 21:17:34 sudo[17763] -> sudo_ttyname_scan @ ./ttyname.c:181 Sep 1 21:17:34 sudo[17763] scanning for dev 34817 in /dev/hugepages @ sudo_ttyname_scan() ./ttyname.c:187 Sep 1 21:17:34 sudo[17763] <- sudo_ttyname_scan @ ./ttyname.c:305 := (null) Sep 1 21:17:34 sudo[17763] -> sudo_ttyname_scan @ ./ttyname.c:181 Sep 1 21:17:34 sudo[17763] scanning for dev 34817 in /dev/shm @ sudo_ttyname_scan() ./ttyname.c:187 Sep 1 21:17:34 sudo[17763] <- sudo_ttyname_scan @ ./ttyname.c:305 := (null) Sep 1 21:17:34 sudo[17763] -> sudo_ttyname_scan @ ./ttyname.c:181 Sep 1 21:17:34 sudo[17763] scanning for dev 34817 in /dev/usb @ sudo_ttyname_scan() ./ttyname.c:187 Sep 1 21:17:34 sudo[17763] <- sudo_ttyname_scan @ ./ttyname.c:305 := (null) Sep 1 21:17:34 sudo[17763] -> sudo_ttyname_scan @ ./ttyname.c:181 Sep 1 21:17:34 sudo[17763] scanning for dev 34817 in /dev/disk @ sudo_ttyname_scan() ./ttyname.c:187 Sep 1 21:17:34 sudo[17763] -> sudo_ttyname_scan @ ./ttyname.c:181 Sep 1 21:17:34 sudo[17763] scanning for dev 34817 in /dev/disk/by-uuid @ sudo_ttyname_scan() ./ttyname.c:187 Sep 1 21:17:34 sudo[17763] <- sudo_ttyname_scan @ ./ttyname.c:305 := (null) Sep 1 21:17:34 sudo[17763] -> sudo_ttyname_scan @ ./ttyname.c:181 Sep 1 21:17:34 sudo[17763] scanning for dev 34817 in /dev/disk/by-partuuid @ sudo_ttyname_scan() ./ttyname.c:187 Sep 1 21:17:34 sudo[17763] <- sudo_ttyname_scan @ ./ttyname.c:305 := (null) Sep 1 21:17:34 sudo[17763] -> sudo_ttyname_scan @ ./ttyname.c:181 Sep 1 21:17:34 sudo[17763] scanning for dev 34817 in /dev/disk/by-path @ sudo_ttyname_scan() ./ttyname.c:187 Sep 1 21:17:34 sudo[17763] <- sudo_ttyname_scan @ ./ttyname.c:305 := (null) Sep 1 21:17:34 sudo[17763] -> sudo_ttyname_scan @ ./ttyname.c:181 Sep 1 21:17:34 sudo[17763] scanning for dev 34817 in /dev/disk/by-id @ sudo_ttyname_scan() ./ttyname.c:187 Sep 1 21:17:34 sudo[17763] <- sudo_ttyname_scan @ ./ttyname.c:305 := (null) Sep 1 21:17:34 sudo[17763] <- sudo_ttyname_scan @ ./ttyname.c:305 := (null) Sep 1 21:17:34 sudo[17763] -> sudo_ttyname_scan @ ./ttyname.c:181 Sep 1 21:17:34 sudo[17763] scanning for dev 34817 in /dev/block @ sudo_ttyname_scan() ./ttyname.c:187 Sep 1 21:17:34 sudo[17763] <- sudo_ttyname_scan @ ./ttyname.c:305 := (null) Sep 1 21:17:34 sudo[17763] -> sudo_ttyname_scan @ ./ttyname.c:181 Sep 1 21:17:34 sudo[17763] scanning for dev 34817 in /dev/bsg @ sudo_ttyname_scan() ./ttyname.c:187 Sep 1 21:17:34 sudo[17763] <- sudo_ttyname_scan @ ./ttyname.c:305 := (null) Sep 1 21:17:34 sudo[17763] -> sudo_ttyname_scan @ ./ttyname.c:181 Sep 1 21:17:34 sudo[17763] scanning for dev 34817 in /dev/bus @ sudo_ttyname_scan() ./ttyname.c:187 Sep 1 21:17:34 sudo[17763] -> sudo_ttyname_scan @ ./ttyname.c:181 Sep 1 21:17:34 sudo[17763] scanning for dev 34817 in /dev/bus/usb @ sudo_ttyname_scan() ./ttyname.c:187 Sep 1 21:17:34 sudo[17763] -> sudo_ttyname_scan @ ./ttyname.c:181 Sep 1 21:17:34 sudo[17763] scanning for dev 34817 in /dev/bus/usb/002 @ sudo_ttyname_scan() ./ttyname.c:187 Sep 1 21:17:34 sudo[17763] <- sudo_ttyname_scan @ ./ttyname.c:305 := (null) Sep 1 21:17:34 sudo[17763] -> sudo_ttyname_scan @ ./ttyname.c:181 Sep 1 21:17:34 sudo[17763] scanning for dev 34817 in /dev/bus/usb/001 @ sudo_ttyname_scan() ./ttyname.c:187 Sep 1 21:17:34 sudo[17763] <- sudo_ttyname_scan @ ./ttyname.c:305 := (null) Sep 1 21:17:34 sudo[17763] <- sudo_ttyname_scan @ ./ttyname.c:305 := (null) Sep 1 21:17:34 sudo[17763] <- sudo_ttyname_scan @ ./ttyname.c:305 := (null) Sep 1 21:17:34 sudo[17763] -> sudo_ttyname_scan @ ./ttyname.c:181 Sep 1 21:17:34 sudo[17763] scanning for dev 34817 in /dev/char @ sudo_ttyname_scan() ./ttyname.c:187 Sep 1 21:17:34 sudo[17763] <- sudo_ttyname_scan @ ./ttyname.c:305 := (null) Sep 1 21:17:34 sudo[17763] -> sudo_ttyname_scan @ ./ttyname.c:181 Sep 1 21:17:34 sudo[17763] scanning for dev 34817 in /dev/cpu @ sudo_ttyname_scan() ./ttyname.c:187 Sep 1 21:17:34 sudo[17763] <- sudo_ttyname_scan @ ./ttyname.c:305 := (null) Sep 1 21:17:34 sudo[17763] <- sudo_ttyname_scan @ ./ttyname.c:305 := (null) Sep 1 21:17:34 sudo[17763] <- sudo_ttyname_dev @ ./ttyname.c:371 := (null) Sep 1 21:17:34 sudo[17763] unable to resolve tty via /proc/17763/stat: Value too large for defined data type @ get_process_ttyname() ./ttyname.c:524 Sep 1 21:17:34 sudo[17763] <- get_process_ttyname @ ./ttyname.c:526 := (null) Sep 1 21:17:34 sudo[17763] <- get_user_info @ ./sudo.c:601 := (nil) Sep 1 21:17:34 sudo[17763] main: unable to allocate memory @ main() ./sudo.c:204
Sorry, I kept getting errors when trying to attach the new file. So I just pasted it as a comment ...
No problem. It looks like something is failing with EOVERFLOW, probably stat(2). That shouldn't happen since configure should set _FILE_OFFSET_BITS to 64. Since this only happens with a 4.7 kernel my guess is that there's either bug with stat64() on i386 or sudo was not compiled with _FILE_OFFSET_BITS = 64 (which configure should do for you). You could strace the sudo process to see which syscall is returning EOVERFLOW. I've committed a change to just warn and not exit when the tty cannot be resolved but it would be nice to understand exactly what is going on.
I think I've found the root cause of the problem. Large file support was disabled in the ttyname code to work around a limitation on Solaris. It should be fixed by: https://www.sudo.ws/repos/sudo/rev/09450ce8b8a8 The upcoming sudo-1.8.18b4 will include this fix.
Thanks a lot, Todd! This seems to fix the issue here.
Fixed in sudo 1.8.18