首頁>技術>

docker 替換 jar 包提示

[root@xxxx merged]# mv sso-server-0.0.1.jar app.jarmv: overwrite ‘app.jar’? ymv: cannot move ‘sso-server-0.0.1.jar’ to ‘app.jar’: Stale file handle
排查

用 strace 跟蹤,沒啥有用的資訊。

[root@xxxx merged]# strace mv sso-server-0.0.1.jar app.jarexecve("/usr/bin/mv", ["mv", "sso-server-0.0.1.jar", "app.jar"], [/* 29 vars */]) = 0brk(NULL)                               = 0x1688000mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fd6b349a000access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3fstat(3, {st_mode=S_IFREG|0644, st_size=27070, ...}) = 0mmap(NULL, 27070, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fd6b3493000close(3)                                = 0open("/lib64/libselinux.so.1", O_RDONLY|O_CLOEXEC) = 3read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320i\0\0\0\0\0\0"..., 832) = 832fstat(3, {st_mode=S_IFREG|0755, st_size=155784, ...}) = 0mmap(NULL, 2255184, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fd6b3053000mprotect(0x7fd6b3077000, 2093056, PROT_NONE) = 0mmap(0x7fd6b3276000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x23000) = 0x7fd6b3276000mmap(0x7fd6b3278000, 6480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7fd6b3278000close(3)                                = 0open("/lib64/libacl.so.1", O_RDONLY|O_CLOEXEC) = 3read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\200\37\0\0\0\0\0\0"..., 832) = 832fstat(3, {st_mode=S_IFREG|0755, st_size=37056, ...}) = 0mmap(NULL, 2130560, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fd6b2e4a000mprotect(0x7fd6b2e51000, 2097152, PROT_NONE) = 0mmap(0x7fd6b3051000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x7000) = 0x7fd6b3051000close(3)                                = 0open("/lib64/libattr.so.1", O_RDONLY|O_CLOEXEC) = 3read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320\23\0\0\0\0\0\0"..., 832) = 832fstat(3, {st_mode=S_IFREG|0755, st_size=19896, ...}) = 0mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fd6b3492000mmap(NULL, 2113904, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fd6b2c45000mprotect(0x7fd6b2c49000, 2093056, PROT_NONE) = 0mmap(0x7fd6b2e48000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3000) = 0x7fd6b2e48000close(3)                                = 0open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20&\2\0\0\0\0\0"..., 832) = 832fstat(3, {st_mode=S_IFREG|0755, st_size=2156160, ...}) = 0mmap(NULL, 3985888, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fd6b2877000mprotect(0x7fd6b2a3a000, 2097152, PROT_NONE) = 0mmap(0x7fd6b2c3a000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1c3000) = 0x7fd6b2c3a000mmap(0x7fd6b2c40000, 16864, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7fd6b2c40000close(3)                                = 0open("/lib64/libpcre.so.1", O_RDONLY|O_CLOEXEC) = 3read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\360\25\0\0\0\0\0\0"..., 832) = 832fstat(3, {st_mode=S_IFREG|0755, st_size=402384, ...}) = 0mmap(NULL, 2494984, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fd6b2615000mprotect(0x7fd6b2675000, 2097152, PROT_NONE) = 0mmap(0x7fd6b2875000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x60000) = 0x7fd6b2875000close(3)                                = 0open("/lib64/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\220\r\0\0\0\0\0\0"..., 832) = 832fstat(3, {st_mode=S_IFREG|0755, st_size=19288, ...}) = 0mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fd6b3491000mmap(NULL, 2109712, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fd6b2411000mprotect(0x7fd6b2413000, 2097152, PROT_NONE) = 0mmap(0x7fd6b2613000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7fd6b2613000close(3)                                = 0open("/lib64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0@m\0\0\0\0\0\0"..., 832) = 832fstat(3, {st_mode=S_IFREG|0755, st_size=142232, ...}) = 0mmap(NULL, 2208904, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fd6b21f5000mprotect(0x7fd6b220c000, 2093056, PROT_NONE) = 0mmap(0x7fd6b240b000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x16000) = 0x7fd6b240b000mmap(0x7fd6b240d000, 13448, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7fd6b240d000close(3)                                = 0mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fd6b3490000mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fd6b348e000arch_prctl(ARCH_SET_FS, 0x7fd6b348e840) = 0mprotect(0x7fd6b2c3a000, 16384, PROT_READ) = 0mprotect(0x7fd6b240b000, 4096, PROT_READ) = 0mprotect(0x7fd6b2613000, 4096, PROT_READ) = 0mprotect(0x7fd6b2875000, 4096, PROT_READ) = 0mprotect(0x7fd6b2e48000, 4096, PROT_READ) = 0mprotect(0x7fd6b3051000, 4096, PROT_READ) = 0mprotect(0x7fd6b3276000, 4096, PROT_READ) = 0mprotect(0x61d000, 4096, PROT_READ)     = 0mprotect(0x7fd6b349b000, 4096, PROT_READ) = 0munmap(0x7fd6b3493000, 27070)           = 0set_tid_address(0x7fd6b348eb10)         = 26657set_robust_list(0x7fd6b348eb20, 24)     = 0rt_sigaction(SIGRTMIN, {0x7fd6b21fb820, [], SA_RESTORER|SA_SIGINFO, 0x7fd6b22045f0}, NULL, 8) = 0rt_sigaction(SIGRT_1, {0x7fd6b21fb8b0, [], SA_RESTORER|SA_RESTART|SA_SIGINFO, 0x7fd6b22045f0}, NULL, 8) = 0rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0statfs("/sys/fs/selinux", 0x7ffdbc6102e0) = -1 ENOENT (No such file or directory)statfs("/selinux", 0x7ffdbc6102e0)      = -1 ENOENT (No such file or directory)brk(NULL)                               = 0x1688000brk(0x16a9000)                          = 0x16a9000open("/proc/filesystems", O_RDONLY)     = 3fstat(3, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fd6b3499000read(3, "nodev\tsysfs\nnodev\trootfs\nnodev\tr"..., 1024) = 309stat("/etc/sysconfig/64bit_strstr_via_64bit_strstr_sse2_unaligned", 0x7ffdbc60feb0) = -1 ENOENT (No such file or directory)read(3, "", 1024)                       = 0close(3)                                = 0munmap(0x7fd6b3499000, 4096)            = 0access("/etc/selinux/config", F_OK)     = 0open("/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3fstat(3, {st_mode=S_IFREG|0644, st_size=106075056, ...}) = 0mmap(NULL, 106075056, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fd6abccb000close(3)                                = 0geteuid()                               = 0ioctl(0, TCGETS, {B38400 opost isig icanon echo ...}) = 0stat("app.jar", {st_mode=S_IFREG|0644, st_size=81917312, ...}) = 0lstat("sso-server-0.0.1.jar", {st_mode=S_IFREG|0644, st_size=81919007, ...}) = 0lstat("app.jar", {st_mode=S_IFREG|0644, st_size=81917312, ...}) = 0geteuid()                               = 0renameat2(AT_FDCWD, "sso-server-0.0.1.jar", AT_FDCWD, "app.jar", 0) = -1 ESTALE (Stale file handle)open("/usr/share/locale/locale.alias", O_RDONLY|O_CLOEXEC) = 3fstat(3, {st_mode=S_IFREG|0644, st_size=2502, ...}) = 0mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fd6b3499000read(3, "# Locale name alias data base.\n#"..., 4096) = 2502read(3, "", 4096)                       = 0close(3)                                = 0munmap(0x7fd6b3499000, 4096)            = 0open("/usr/share/locale/en_US.UTF-8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)open("/usr/share/locale/en_US.utf8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)open("/usr/share/locale/en_US/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)open("/usr/share/locale/en.UTF-8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)open("/usr/share/locale/en.utf8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)open("/usr/share/locale/en/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)open("/usr/lib64/charset.alias", O_RDONLY|O_NOFOLLOW) = -1 ENOENT (No such file or directory)write(2, "mv: ", 4mv: )                     = 4write(2, "cannot move \342\200\230sso-server-0.0.1."..., 55cannot move ‘sso-server-0.0.1.jar’ to ‘app.jar’) = 55open("/usr/share/locale/en_US.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)open("/usr/share/locale/en_US.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)open("/usr/share/locale/en_US/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)open("/usr/share/locale/en.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)open("/usr/share/locale/en.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)open("/usr/share/locale/en/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)write(2, ": Stale file handle", 19: Stale file handle)     = 19write(2, "\n", 1)                       = 1lseek(0, 0, SEEK_CUR)                   = -1 ESPIPE (Illegal seek)close(0)                                = 0close(1)                                = 0close(2)                                = 0exit_group(1)                           = ?+++ exited with 1 +++

fuser檢視被啥佔用了,無效資訊,這倆程序怎麼kill。。。

[root@xxxx merged]# fuser -m sso-server-0.0.1.jar /var/lib/docker/overlay2/a90ef58db2a05a8003c6bf8098841c5d58ffaf81177886353d0096fdb5fea809/merged/sso-server-0.0.1.jar: 26198c 27091rce[root@xxxx merged]# fuser -m app.jar/var/lib/docker/overlay2/a90ef58db2a05a8003c6bf8098841c5d58ffaf81177886353d0096fdb5fea809/merged/app.jar: 26198c 27091rce[root@xxxx merged]# fuser -m -v app.jar                     USER        PID ACCESS COMMAND/var/lib/docker/overlay2/a90ef58db2a05a8003c6bf8098841c5d58ffaf81177886353d0096fdb5fea809/merged/app.jar:                     root     kernel mount /var/lib/docker/overlay2/a90ef58db2a05a8003c6bf8098841c5d58ffaf81177886353d0096fdb5fea809/merged                     root      26198 ..c.. bash                     root      27091 Frce. java[root@xxxx merged]# ps -ef|grep 26198root     26198 26193  0 11:25 pts/3    00:00:00 -bashroot     27239 26198  0 11:43 pts/3    00:00:00 ps -efroot     27240 26198  0 11:43 pts/3    00:00:00 grep --color=auto 26198[root@xxxx merged]# ps -ef|grep 27091root     27091 27070 99 11:42 ?        00:01:14 java -server -Xmx2g -Xms2g -Xmn256m -XX:PermSize=256m -Xss256k -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 -jar /app.jarroot     27244 26198  0 11:43 pts/3    00:00:00 grep --color=auto 27091

github上看到這個,https://github.com/coreos/bugs/issues/2152 ,下面有人說升級核心解決問題。開動

解決方案

升級核心網上的教程都有點問題了,會提示Error getting repository data for elrepo-kernel, repository not found,最後去官網看下。http://elrepo.org/tiki/HomePage,正確步驟如下:

匯入 public key

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

安裝ELRepo

yum install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm

同時切換到清華大學源 https://mirrors.tuna.tsinghua.edu.cn/help/elrepo/

編輯 /etc/yum.repos.d/elrepo.repo 檔案,在 mirrorlist= 開頭的行前面加 # 註釋掉;並將 elrepo.org/linux 替換為 mirrors.tuna.tsinghua.edu.cn/elrepo。

最後,更新軟體包快取

sudo yum makecache

安裝主線版核心

yum --enablerepo=elrepo-kernel install kernel-ml -y

發現還是很慢,於是到清華大學源搜尋包名下載安裝了。

wget https://mirrors.tuna.tsinghua.edu.cn/elrepo/kernel/el7/x86_64/RPMS/kernel-ml-5.10.2-1.el7.elrepo.x86_64.rpmyum install kernel-ml-5.10.2-1.el7.elrepo.x86_64.rpm -y

更新grub,不管GRUB_TIMEOUT=0原來是啥,改為0

[root@xxxx ~]# cat /etc/default/grubGRUB_TIMEOUT=0GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"GRUB_DEFAULT=GRUB_DISABLE_SUBMENU=trueGRUB_TERMINAL_OUTPUT="console"GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet  net.ifnames=0 vga=792 console=tty0 console=ttyS0,115200n8"GRUB_DISABLE_RECOVERY="true"

重新生成

[root@xxxx ~]# grub2-mkconfig -o /boot/grub2/grub.cfgGenerating grub configuration file ...Found linux image: /boot/vmlinuz-5.10.2-1.el7.elrepo.x86_64Found initrd image: /boot/initramfs-5.10.2-1.el7.elrepo.x86_64.imgFound linux image: /boot/vmlinuz-3.10.0-1062.18.1.el7.x86_64Found initrd image: /boot/initramfs-3.10.0-1062.18.1.el7.x86_64.imgFound linux image: /boot/vmlinuz-3.10.0-693.11.1.el7.x86_64Found initrd image: /boot/initramfs-3.10.0-693.11.1.el7.x86_64.imgFound linux image: /boot/vmlinuz-3.10.0-693.el7.x86_64Found initrd image: /boot/initramfs-3.10.0-693.el7.x86_64.imgFound linux image: /boot/vmlinuz-0-rescue-201803271148b62cae480a0002020050Found initrd image: /boot/initramfs-0-rescue-201803271148b62cae480a0002020050.imgdone

重啟伺服器

驗證

找到目錄

cd $(docker inspect --format='{{json .GraphDriver.Data.MergedDir}}' sso|sed 's/\"//g')

替換

[root@xxxx merged]# mv sso-server-0.0.1.jar app.jarmv: overwrite ‘app.jar’? y[root@xxxx merged]#

搞定!

14
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • ftp伺服器搭建教程