Summary: | Крашится autofs на e2k (при этом всё ок на x86_64) | ||||||
---|---|---|---|---|---|---|---|
Product: | Sisyphus | Reporter: | makise-homura <Igor.A.Molchanov> | ||||
Component: | autofs | Assignee: | Michael Shigorin <mike> | ||||
Status: | CLOSED FIXED | QA Contact: | qa-sisyphus | ||||
Severity: | normal | ||||||
Priority: | P5 | CC: | ilyakurdyukov, mike, sbolshakov | ||||
Version: | unstable | ||||||
Hardware: | e2k | ||||||
OS: | Linux | ||||||
Attachments: |
|
Description
makise-homura
2022-05-26 00:08:20 MSK
@mike, видимо это к вам Илья, могу подготовить стенд -- посмотрите? Запилил стенд. Доступ по запросу дан к машинам lyrica и lunasa по ssh с авторизацией по ключу. У пользователя есть права sudo (он в группе wheel). lyrica - nfs-сервер, на котором расшарен каталог /export: lyrica ~ # grep -v '^#' /etc/exports /export *(rw,async,no_subtree_check,no_root_squash) lyrica ~ # ls /export/auto dir lyrica ~ # lunasa - клиент, на котором autofs настроен монтировать каталог lyrica:/export/auto в /mnt/auto/lyrica: lunasa ~ # grep -v '^#' /etc/auto.master /mnt/auto /etc/auto.auto lunasa ~ # cat /etc/auto.auto lyrica -rw,intr,nfsvers=4 lyrica:/export/auto lunasa ~ # Воспроизведение ошибки (после sudo bash): lunasa ~ # systemctl restart autofs lunasa ~ # systemctl status autofs ● autofs.service - Automounts filesystems on demand Loaded: loaded (/lib/systemd/system/autofs.service; enabled; vendor preset: disabled) Active: active (running) since Sat 2022-10-22 03:40:09 +06; 22s ago Main PID: 16946 (automount) Tasks: 5 (limit: 19146) Memory: 3.2M CGroup: /system.slice/autofs.service └─16946 /usr/sbin/automount --systemd-service --dont-check-daemon окт 22 03:40:09 lunasa systemd[1]: Starting Automounts filesystems on demand... окт 22 03:40:09 lunasa systemd[1]: Started Automounts filesystems on demand. lunasa ~ # ls /mnt/auto/lyrica # Оно подвиснет, секунд через 5 можно нажимать Ctrl+C ^C lunasa ~ # systemctl status autofs ● autofs.service - Automounts filesystems on demand Loaded: loaded (/lib/systemd/system/autofs.service; enabled; vendor preset: disabled) Active: failed (Result: signal) since Sat 2022-10-22 03:40:46 +06; 10s ago Process: 16946 ExecStart=/usr/sbin/automount $OPTIONS --systemd-service --dont-check-daemon (code=killed, signal=SEGV) Main PID: 16946 (code=killed, signal=SEGV) окт 22 03:40:09 lunasa systemd[1]: Starting Automounts filesystems on demand... окт 22 03:40:09 lunasa systemd[1]: Started Automounts filesystems on demand. окт 22 03:40:46 lunasa systemd[1]: autofs.service: Main process exited, code=killed, status=11/SEGV окт 22 03:40:46 lunasa systemd[1]: autofs.service: Failed with result 'signal'. lunasa ~ # При этом сервер доступен, nfs-шара монтируется: lunasa ~ # ls /mnt/nfs lunasa ~ # mount -t nfs -o rw,intr,nfsvers=4 lyrica:/export/auto /mnt/nfs lunasa ~ # ls /mnt/nfs dir lunasa ~ # umount /mnt/nfs lunasa ~ # include/linux/auto_fs.h в исходниках autofs: #if defined(__ia64__) || defined(__alpha__) /* pure 64bit architectures */ typedef unsigned long autofs_wqt_t; #else typedef unsigned int autofs_wqt_t; #endif Должно быть добавлено defined(__e2k__) в список 64-бит архитектур. Из-за этого поля оказываются смещены и происходит ошибка. Created attachment 11747 [details] [PATCH] auto_fs.h: added e2k as a pure 64-bit arch Илья при отладке обнаружил, что ядро и indirect.c::pending_mutex_lock() задействуют по факту разные ABI, в результате чего (pkt->name, pkt->len) -- уже мусор. Структура выглядит так (include/linux/auto_fs4.h): /* autofs v5 common packet struct */ struct autofs_v5_packet { struct autofs_packet_hdr hdr; autofs_wqt_t wait_queue_token; __u32 dev; __u64 ino; __u32 uid; __u32 gid; __u32 pid; __u32 tgid; __u32 len; char name[NAME_MAX+1]; }; А выбор типа autofs_wqt_t происходит в include/linux/auto_fs.h по явному списку 64-битных архитектур -- альту как уже чисто 64-битному дистрибутиву на e2k это без разницы, в OSL есть смысл хотя бы держать в уме (отметил в mcst#4886). Патч прилагаю, отправил в sisyphus пробное задание #308838 (заодно сделал ручку rpcgen, у нас тут пока glibc 2.29); на его основе будет пробное же для p10_e2k. Коллеги, благодарю за внимание и труды! С предоставленным пакетом всё работает, спасибо! Можно считать FIXED, теперь жду, когда пакет с исправлением окажется в репе и поставлю CLOSED. (Ответ для makise-homura на комментарий #6) > С предоставленным пакетом всё работает, спасибо! Можно считать FIXED, теперь > жду, когда пакет с исправлением окажется в репе и поставлю CLOSED. Ушло в sisyphus, sisyphus_e2k и p10_e2k. В версии -alt6 в sysiphus правка вошла. Спасибо! Закрываю. |