MUPIP BACKUP issues a FILENAMETOOLONG error when the absolute path length of the target backup filename is too long
Final Release Note
MUPIP BACKUP issues a FILENAMETOOLONG error when the absolute path length of the target backup filename is too long (approximately 255 bytes). Previously, this resulted in an abnormal termination of the backup process with a KILLBYSIGSINFO1 fatal error (signal 6/SIGABRT). [#267 (closed)]
Description
Below is a backup invocation that demonstrates the issue.
$ $ydb_dist/mupip BACKUP DEFAULT /extra1/testarea1/user/V998/tst_V998_R122_dbg_01_180531_094328/v63003_0/gtm4212/aaaaaaaaaaaaaaaaaaaa/aaaaaaaaaaaaaaaaaaaaaaaa/aaaaaaaaaaaaaaaaaaaaaaaa/aaaaaaaaaaaaaaaaaaaaaaaa/aaaaaaaaaaaaaaaaaaaaaaaa/aaaaaaaaaaaaaaaaaaaaaaaa/aaaaaaaaaaaa
*** buffer overflow detected ***: /usr/library/V999_R122/pro/mupip terminated
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x777e5)[0x7ffad2c7a7e5]
/lib/x86_64-linux-gnu/libc.so.6(__fortify_fail+0x5c)[0x7ffad2d1c15c]
/lib/x86_64-linux-gnu/libc.so.6(+0x117160)[0x7ffad2d1a160]
/usr/library/V999_R122/pro/libyottadb.so(+0x240073)[0x7ffad276a073]
/usr/library/V999_R122/pro/libyottadb.so(+0x137583)[0x7ffad2661583]
/usr/library/V999_R122/pro/libyottadb.so(mupip_main+0x12d)[0x7ffad255384d]
/usr/library/V999_R122/pro/mupip(dlopen_libyottadb+0x1dc)[0x400d0c]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0)[0x7ffad2c23830]
/usr/library/V999_R122/pro/mupip(_start+0x29)[0x400a59]
======= Memory map: ========
00400000-00402000 r-xp 00000000 fd:00 1766629 /usr/library/V999_R122/pro/mupip
00601000-00602000 r--p 00001000 fd:00 1766629 /usr/library/V999_R122/pro/mupip
00602000-00603000 rw-p 00002000 fd:00 1766629 /usr/library/V999_R122/pro/mupip
01aff000-01c2f000 rw-p 00000000 00:00 0 [heap]
.
.
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall]
%YDB-F-KILLBYSIGSINFO1, MUPIP process 7377 has been killed by a signal 6 at address 0x00007FFAD2C38428 (vaddr 0x000000E400001CD1)
Draft Release Note
MUPIP BACKUP correctly issues a FILENAMETOOLONG error when the absolute path length of the target backup filename is too long (approximately 255 bytes). Previously, this used to result in an abnormal termination of the backup process with a KILLBYSIGSINFO1 fatal error (signal 6/SIGABRT) due to a buffer overflow.
Edited by K.S. Bhaskar