Установлен School lite, final, в виртуальную машину VirtualBox. Если в меню XFce выбрать команду "Выйти", затем "Выйти", то после этого графическая оболочка не запускается. $ cat /var/log/xdm-error.log xdm info (pid 10772): Starting xdm info (pid 10772): Starting X server on :0 X.Org X Server 1.6.5 Release Date: 2009-10-11 X Protocol Version 11, Revision 0 Build Operating System: Simply GNU/Linux 5.0.0 RC2 (Billy) i686 Current Operating System: Linux host-15.localdomain 2.6.30-std-def-alt14 #1 SMP Wed Oct 7 06:44:21 UTC 2009 i686 Build Date: 12 October 2009 08:23:12AM Before reporting problems, check https://bugzilla.altlinux.org/ to make sure that you have the latest version. Markers: (--) probed, (**) from config file, (==) default setting, (++) from command line, (!!) notice, (II) informational, (WW) warning, (EE) error, (NI) not implemented, (??) unknown. (==) Log file: "/var/log/Xorg.0.log", Time: Sun Nov 22 19:00:08 2009 (==) Using config file: "/etc/X11/xorg.conf" xdm error (pid 10772): Unknown session exit code 2816 from process 11118 error setting MTRR (base = 0xe0000000, size = 0x00500000, type = 1) Invalid argument (22)
2cas@, shrek@ Прошу разобраться. http://forum.altlinux.org/index.php/topic,4062.45.html Видимо, это исправлено в simply. Надо исправить в Школьном Lite.
segfault в xdm-1.1.9/session.c: SessionExit (...) { ... pam_close_session(pamh, 0); /* ^^^^^ segfault здесь, pamh на выходе pam_open_session правильный */ ... }
Program received signal SIGSEGV, Segmentation fault. [Switching to Thread -1212238080 (LWP 14627)] 0xb7d428bf in strlen () from /lib/libc.so.6 (gdb) bt #0 0xb7d428bf in strlen () from /lib/libc.so.6 #1 0xb7d36138 in fputs_unlocked () from /lib/libc.so.6 #2 0xb7d95968 in __vsyslog_chk () from /lib/libc.so.6 #3 0xb7d95f76 in __syslog_chk () from /lib/libc.so.6 #4 0xb7e28397 in pam_vsyslog () from /lib/libpam.so.0 #5 0xb7e284e2 in pam_syslog () from /lib/libpam.so.0 #6 0xb79991a8 in pam_sm_close_session () from /lib/security/pam_tcb.so #7 0xb7e2333f in endgrent () from /lib/libpam.so.0 #8 0x080c1968 in ?? () #9 0x00000000 in ?? () (gdb)
Вероятно, в xdm происходит memory corruption.
Возможно, что запуск xdm под valgrind'ом поможет локализовать это быстрее.
https://bugs.freedesktop.org/show_bug.cgi?id=24589
xdm-1.1.9/session.c: ManageSession() {} При вызове dlclose(greet_lib_handle) пишется мусор в LogTag (glibc-2.10.1-alt7/misc/syslog.c:66). До dlclose() в LogTag имя программы = "xdm", как и должно быть.
P.S. потом при записи логов при закрытии сессии происходит обращение по этому адресу -> SYGSEGV.
Created attachment 4166 [details] Патч для xdm-1.1.9/greeter/greet.c В greeter/greet.c (строка 493) в openlog() передается постоянный адрес строки "xdm" из libXdmGreet.so, по которому syslog() обращается и после dlclose() на libXdmGreet.so. После dlclose() это вызывает segfault. Если строку скопировать на кучу, то адрес имеет смысл и после dlclose(), см. патч.
Created attachment 4167 [details] .spec с патчем
*** Bug 22681 has been marked as a duplicate of this bug. ***
Ok. Спасибо! Попадет ли xdm-1.1.9-alt2 в "p5", с обновлением http://ftp.altlinux.org/pub/distributions/ALTLinux/p5/iso/school/altlinux-5.0.0-school-lite-i586-ru-install-cd.iso, в котором xdm стоит по умолчанию? Желательно патч положить сюда: https://bugs.freedesktop.org/show_bug.cgi?id=24589
(В ответ на комментарий №12) > Ok. Спасибо! > > Попадет ли xdm-1.1.9-alt2 в "p5", с обновлением > http://ftp.altlinux.org/pub/distributions/ALTLinux/p5/iso/school/altlinux-5.0.0-school-lite-i586-ru-install-cd.iso, > в котором xdm стоит по умолчанию? 2shrek: соберите для 5.1, пожалуйста. 2cas: переложите в p5, пожалуйста > > Желательно патч положить сюда: > https://bugs.freedesktop.org/show_bug.cgi?id=24589 Это лучше сделать автору. Спасибо!
/ offtop / >> Желательно патч положить сюда: >> https://bugs.freedesktop.org/show_bug.cgi?id=24589 >Это лучше сделать автору. У автора нет @altlinux.ru в адресе. Imho, надо при любой самой мелкой возможности увеличивать _видимый_ вклад altlinux в общий для всех софт.
(В ответ на комментарий №14) > / offtop / > > >> Желательно патч положить сюда: > >> https://bugs.freedesktop.org/show_bug.cgi?id=24589 > > >Это лучше сделать автору. > > У автора нет @altlinux.ru в адресе. Imho, надо при любой самой мелкой > возможности увеличивать _видимый_ вклад altlinux в общий для всех софт. Желающие не увидеть -- не увидят этого вклада, который немал. Но главное -- вклад этот авторский и нехорошо пиарить альт на нем. Ну и, наконец, получить адрес на altlinux.ru совсем не сложно. :-)
(In reply to comment #12) > Желательно патч положить сюда: > https://bugs.freedesktop.org/show_bug.cgi?id=24589 Я бы не стал продвигать этот патч, поскольку он реализует memory leak. Не лучше ли перенести вызов openlog() в основную часть xdm?
Created attachment 4198 [details] патч для session.c, greeter.c > Я бы не стал продвигать этот патч, поскольку он реализует memory leak. Логично. См. новый патч. Пока syslog() вызывается явно только из GreetUser(), openlog() достаточно вызвать из ManageSession(). / offtop / > вклад этот авторский и нехорошо пиарить альт на нем. Ok. Теперь добавился автор ldv@altlinux.ru
(In reply to comment #17) > > Я бы не стал продвигать этот патч, поскольку он реализует memory leak. > > Логично. См. новый патч. Пока syslog() вызывается явно только из GreetUser(), > openlog() достаточно вызвать из ManageSession(). syslog() вызывается и неявно, причём неоднократно, из PAM'а, иначе бы не было той проблемы, о которой здесь сообщили сначала. Я готов общаться с апстримом от своего имени, но для правильного указания авторства требуется ваше имя (если, конечно, вы не хотите фигурировать в коммите с одним лишь email'ом без имени)
(В ответ на комментарий №18) > (In reply to comment #17) > > syslog() вызывается и неявно, причём неоднократно, из PAM'а, Первый вызов pam* () идет из GreetUser(). С последним патчем это после openlog(). Поэтому openlog() передвигать выше нет смысла, если до этого места в дочернем xdm нет других вызовов syslog(). > Я готов общаться с апстримом от своего имени, Thx! > но для правильного указания авторства требуется ваше имя O.V.Zenin (IHEP, Protvino, Russia), tt(at)compas.ihep.su
(In reply to comment #19) > (В ответ на комментарий №18) > > (In reply to comment #17) > > > > syslog() вызывается и неявно, причём неоднократно, из PAM'а, > > Первый вызов pam* () идет из GreetUser(). С последним патчем это после > openlog(). Поэтому openlog() передвигать выше нет смысла, если до этого места > в дочернем xdm нет других вызовов syslog(). Я думаю, что от более раннего вызова openlog(3) никому хуже не станет (в демонах обычно стараются сделать этот вызов пораньше). > > Я готов общаться с апстримом от своего имени, > > Thx! > > > но для правильного указания авторства требуется ваше имя > > O.V.Zenin (IHEP, Protvino, Russia), tt(at)compas.ihep.su Oleg V. Zenin?
(В ответ на комментарий №20) > > Я думаю, что от более раннего вызова openlog(3) никому хуже не станет (в > демонах обычно стараются сделать этот вызов пораньше). Тогда можно переместить openlog() в dm.c, строка 747: ... if (!nofork_session) pid = fork (); else pid = 0; switch (pid) { case 0: + +#ifdef USE_SYSLOG + openlog("xdm", LOG_ODELAY|LOG_PID, LOG_AUTHPRIV); +#endif + if (!nofork_session) { CleanUpChild (); (void) Signal (SIGPIPE, SIG_IGN); } LoadSessionResources (d); SetAuthorization (d); if (!WaitForServer (d)) exit (OPENFAILED_DISPLAY); SetWindowPath(d); #ifdef XDMCP if (d->useChooser) RunChooser (d); else #endif ManageSession (d); ... > Oleg V. Zenin? Тогда "Oleg Zenin". Так чаще имя писалось на англ.
Created attachment 4201 [details] патч: dm.c, greeter.c
http://cgit.freedesktop.org/xorg/app/xdm/commit/?id=ecf015a4e78b96af913c1620d542c8e356f2a3d0 http://cgit.freedesktop.org/xorg/app/xdm/commit/?id=504bb1aee60d570d8676a61acbe32c66d6069c45
Перенос на пакет
Исправлено.
(In reply to comment #26) > Исправлено. День добрый. А как бы узнать, исправлена ли исошка на Альт Лёгкий?
(В ответ на комментарий №27) > День добрый. А как бы узнать, исправлена ли исошка на Альт Лёгкий? Исправлена в 5.0.1
/offtop/ #23108 (вылет openoffice c "XDM authorization key matches an existing client ... can't open display) в каком iso пофикшен? В ftp://ftp.altlinux.ru/pub/distributions/ALTLinux/p5/iso/school/altlinux-5.0.0-school-lite-i586-ru-install-cd.iso #23108 еще есть.
> в каком iso пофикшен? Написали же - в 5.0.1.
(В ответ на комментарий №30) > > в каком iso пофикшен? > > Написали же - в 5.0.1. В ftp://ftp.altlinux.ru/pub/distributions/ALTLinux/p5/iso/school/5.0.1/altlinux-5.0.1-school-lite-i586-ru-install-cd.iso от 04.03.2010 не пофикшено.
(В ответ на комментарий №31) > (В ответ на комментарий №30) > > > в каком iso пофикшен? > > > > Написали же - в 5.0.1. > > В > ftp://ftp.altlinux.ru/pub/distributions/ALTLinux/p5/iso/school/5.0.1/altlinux-5.0.1-school-lite-i586-ru-install-cd.iso > от 04.03.2010 не пофикшено. Да, извините. Исправлено в ftp://ftp.altlinux.ru/pub/distributions/ALTLinux/p5/iso/school/5.0.1/altlinux-5.0.1r1-school-lite-i586-ru-install-cd.iso