ลงชื่อเข้าใช้ช้า ssh - การเปิดใช้งานของ org.freedesktop.login1 หมดเวลา


39

ที่หนึ่งในเซิร์ฟเวอร์ของฉันฉันสังเกตเห็นความล่าช้าในการเข้าสู่ระบบ SSH

การเชื่อมต่อโดยใช้ตัวเลือก ssh -vvv ความล่าช้าเกิดขึ้นที่ debug1: Entering interactive session.

สารสกัดจากการเชื่อมต่อ:

debug1: Authentication succeeded (publickey).
Authenticated to IP_REDACTED ([IP_REDACTED]:22).
debug1: channel 0: new [client-session]
debug3: ssh_session2_open: channel_new: 0
debug2: channel 0: send open
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug2: callback start
debug2: fd 3 setting TCP_NODELAY
debug3: packet_set_tos: set IP_TOS 0x10
debug2: client_session2_setup: id 0
debug2: channel 0: request pty-req confirm 1

ใช้วิธีการที่อธิบายไว้ที่นี่ฉันสร้างเอาต์พุตแบบสเตรซและสังเกตเห็นบรรทัด14:09:53.676004 ppoll([{fd=5, events=POLLIN}], 1, {24, 999645000}, NULL, 8) = 1 ([{fd=5, revents=POLLIN}], left {0, 0}) <25.020764>ที่ใช้เวลา 25 วินาที

สารสกัดจาก strace เอาท์พุท:

14:09:53.675567 clock_gettime(CLOCK_MONOTONIC, {4662549, 999741404}) = 0 <0.000024>
14:09:53.675651 recvmsg(5, {msg_name(0)=NULL, msg_iov(1)=[{"l\4\1\1\n\0\0\0\2\0\0\0\215\0\0\0\1\1o\0\25\0\0\0", 24}], msg_controll
en=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_DONTWAIT|MSG_NOSIGNAL|MSG_CMSG_CLOEXEC) = 24 <0.000024>
14:09:53.675744 recvmsg(5, {msg_name(0)=NULL, msg_iov(1)=[{"/org/freedesktop/DBus\0\0\0\2\1s\0\24\0\0\0"..., 146}], msg_controllen
=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_DONTWAIT|MSG_NOSIGNAL|MSG_CMSG_CLOEXEC) = 146 <0.000025>
14:09:53.675842 recvmsg(5, 0x7ffe0ff1dfa0, MSG_DONTWAIT|MSG_NOSIGNAL|MSG_CMSG_CLOEXEC) = -1 EAGAIN (Resource temporarily unavailab
le) <0.000023>
14:09:53.675925 clock_gettime(CLOCK_MONOTONIC, {4662550, 96075}) = 0 <0.000024>
14:09:53.676004 ppoll([{fd=5, events=POLLIN}], 1, {24, 999645000}, NULL, 8) = 1 ([{fd=5, revents=POLLIN}], left {0, 0}) <25.020764>
14:10:18.696865 recvmsg(5, {msg_name(0)=NULL, msg_iov(1)=[{"l\3\1\0013\0\0\0\3\0\0\0m\0\0\0\6\1s\0\5\0\0\0", 24}], msg_controllen=0,     msg_flags=MSG_CMSG_CLOEXEC}, MSG_DONTWAIT|MSG_NOSIGNAL|MSG_CMSG_CLOEXEC) = 24 <0.000017>
14:10:18.696944 recvmsg(5, {msg_name(0)=NULL, msg_iov(1)=[{":1.10\0\0\0\4\1s\0#\0\0\0org.freedesktop."..., 155}], msg_controllen=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_DONTWAIT|MSG_NOSIGNAL|MSG_CMSG_CLOEXEC) = 155 <0.000018>

ฉันสังเกตเห็นรายการในบันทึกรับรองความถูกต้องในเวลาที่เกี่ยวข้อง:

Jul 21 14:10:18 click sshd[8165]: pam_systemd(sshd:session): Failed to create session: Activation of org.freedesktop.login1 timed out

ไม่รู้จักพอเกี่ยวกับสิ่งนี้พยายามสำรวจความคิดเห็นและทำไมจึงใช้เวลา 25 วินาทีบนเซิร์ฟเวอร์นี้โดยเฉพาะ

journalctl -u systemd-logindคำสั่งแสดงให้เห็นว่า

Jul 20 11:33:06 click systemd-logind[19415]: Failed to abandon session scope: Transport endpoint is not connected
Jul 21 05:04:54 myhost systemd[1]: Started Login Service.
Jul 21 12:15:30 myhost systemd[1]: Started Login Service.
Jul 21 12:17:04 myhost systemd[1]: Started Login Service.
Jul 21 12:49:55 myhost systemd[1]: Started Login Service.
Jul 21 13:57:05 myhost systemd[1]: Started Login Service.
Jul 21 13:58:49 myhost systemd[1]: Started Login Service.
Jul 21 14:01:55 myhost systemd[1]: Started Login Service.
Jul 21 14:08:32 myhost systemd[1]: Started Login Service.
Jul 21 14:09:53 myhost systemd[1]: Started Login Service.
Jul 21 14:19:08 myhost systemd[1]: Started Login Service.
Jul 21 14:21:26 myhost systemd[1]: Started Login Service.
Jul 21 14:22:37 myhost systemd[1]: Started Login Service.
Jul 21 14:25:20 myhost systemd[1]: Started Login Service.
Jul 21 14:30:27 myhost systemd[1]: Started Login Service.
Jul 21 15:02:56 myhost systemd[1]: Started Login Service.

การออกคำสั่งsystemctl restart systemd-logind.serviceแก้ไขมัน (สำหรับตอนนี้น่าจะเป็น)

อะไรคือสิ่งที่Activation of org.freedesktop.login1กล่าวถึง? มีวิธีที่ฉันสามารถป้องกันไม่ให้รีสตาร์ทการเข้าสู่ระบบในอนาคตหรือไม่ ฉันคาดว่าเมื่อเวลาผ่านไปฉันจะมีปัญหานี้กับส่วนที่เหลือของเซิร์ฟเวอร์ที่ฉันจัดการ

เพิ่งสังเกตเห็นว่าการเริ่มเกิดขึ้นบนเซิร์ฟเวอร์อื่น

$ sudo service systemd-logind status

● systemd-logind.service - Login Service
   Loaded: loaded (/lib/systemd/system/systemd-logind.service; static)
   Active: active (running) since Tue 2015-06-16 14:10:57 BST; 1 months 12 days ago
     Docs: man:systemd-logind.service(8)
           man:logind.conf(5)
           http://www.freedesktop.org/wiki/Software/systemd/logind
           http://www.freedesktop.org/wiki/Software/systemd/multiseat
 Main PID: 1701 (systemd-logind)
   Status: "Processing requests..."
   CGroup: /system.slice/systemd-logind.service
           └─1701 /lib/systemd/systemd-logind

Jul 28 13:16:21 myhost systemd[1]: Started Login Service.
Jul 28 13:16:47 myhost systemd[1]: Started Login Service.
Jul 28 16:09:23 myhost systemd[1]: Started Login Service.
Jul 28 16:09:49 myhost systemd[1]: Started Login Service.
Jul 28 16:10:15 myhost systemd[1]: Started Login Service.
Jul 28 16:10:41 myhost systemd[1]: Started Login Service.
Jul 28 22:50:19 myhost systemd[1]: Started Login Service.
Jul 29 05:00:15 myhost systemd[1]: Started Login Service.
Jul 29 11:00:20 myhost systemd[1]: Started Login Service.
Jul 29 11:09:56 myhost systemd[1]: Started Login Service.

แก้ไข - journalctlเอาท์พุทที่ขยาย

EDIT2 - เพิ่มสถานะ systemd-logind ตามที่แนะนำในความคิดเห็นเมื่อสังเกตเห็นสิ่งนี้เริ่มต้นบนเซิร์ฟเวอร์อื่น

อัปเดต - นี่กำลังเริ่มเกิดขึ้นกับเซิร์ฟเวอร์เจสซีที่เหลือของฉัน ฉันเป็นคนเดียวที่ประสบปัญหานี้หรือไม่? จะต้องมีการแก้ไขบางอย่างนอกเหนือจากการรีสตาร์ท systemd-logind มีใครคิดบ้างไหม?

มีรายงานข้อผิดพลาดของเดเบียนใน770135นี้


มันจะมีประโยชน์ที่จะเห็นผลลัพธ์ของsystemcts status systemd-logindก่อนที่จะรีสตาร์ทเพื่อดูว่ามีอะไรผิดปกติ (ออก, ล้มเหลว, อะไรก็ตาม) ppollเป็นเพียงสื่อกลางที่รอการตอบสนองจาก systemd ดังนั้นคุณจึงไม่สามารถตำหนิได้
Jakuje

ไม่มีsystemctsคำสั่ง
Alasdair

ขอโทษ systemctlแน่นอน
Jakuje

ฉันคิดว่านั่นคือสิ่งที่คุณหมายถึง แต่อยากจะแน่ใจ ไม่ว่าจะเป็นเอาท์พุทเดียวกับที่ใช้ได้จากคำสั่งjournalctl -u systemd-logind
Alasdair

ควรแสดงบันทึก แต่ยังแสดงสถานะของบริการด้วย
Jakuje

คำตอบ:


48

สิ่งนี้เกิดขึ้นเมื่อ dbus ถูกรีสตาร์ท แต่ systemd-logind ไม่ได้ถูกรีสตาร์ท ทำต่อไปนี้:

systemctl restart systemd-logind

การแก้ปัญหาคือจากที่นี่: https://major.io/2015/07/27/very-slow-ssh-logins-on-fedora-22/


1
มีการระบุในคำถามแล้วรายงานข้อผิดพลาดยังไม่ได้รับการแก้ไข แต่ขอขอบคุณสำหรับการกู้คืน
อะลาสแดร์

หมายเหตุ: สิ่งนี้สามารถให้ "การเข้าสู่ระบบวน" ใน greeter lightdm ปกติ; ใช้โซลูชั่นเดียวกัน
แฮมเมอ

1

โดยใช้:

systemctl restart systemd-logind

แก้ปัญหาชั่วคราวเท่านั้น

หนึ่งวิธีแก้ปัญหาคือการลบทุก.scopeไฟล์จากงาน cron ตามที่ระบุไว้ที่นี่

* 2,14 * * * root /bin/rm -f /run/systemd/system/*.scope

รายงานข้อผิดพลาดที่เกี่ยวข้อง systemd อยู่ที่นี่: การรั่วไหลของหน่วยขอบเขตการชะลอตัวลง "systemctl รายการหน่วยไฟล์" และการเข้าสู่ระบบการล่าช้า

ดูเหมือนว่าในความเป็นจริงแล้วข้อผิดพลาดของ dbus: unix fd บนเครื่องนับการแตกซึ่งแก้ไขได้ใน dbus เวอร์ชั่น 1.11.10

สำหรับการแก้ไขข้อบกพร่องนี้อย่างถาวรคุณเพียงแค่รอให้ dbus รุ่นนี้ปรากฏในการแจกจ่ายของคุณ สำหรับตอนนี้ Debian Stretch อยู่ที่ dbus 1.10.18, Ubuntu 17.04 (Zesty) อยู่ที่ 1.10.10, CentOS 7 อยู่ที่ dbus 1.6.12

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.