$ xscreensaver ############################################################################## xscreensaver: 11:33:39: X Error! PLEASE REPORT THIS BUG. xscreensaver: 11:33:39: screen 0/0: 0x8e, 0x0, 0x1400001 ############################################################################## X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 107 (X_SetScreenSaver) Value in failed request: 0xffffa8c0 Serial number of failed request: 205 Current serial number in output stream: 206 ############################################################################## If at all possible, please re-run xscreensaver with the command line arguments `-sync -verbose -no-capture', and reproduce this bug. That will cause xscreensaver to dump a `core' file to the current directory. Please include the stack trace from that core file in your bug report. *DO NOT* mail the core file itself! That won't work. http://www.jwz.org/xscreensaver/bugs.html explains how to create the most useful bug reports, and how to examine core files. The more information you can provide, the better. But please report this bug, regardless! ##############################################################################
Created attachment 624 [details] xorg.conf
В свете того что xlockmore не собирается в сизифе, приоритет этой ошибки высок.
Не подтверждается. xorg-x11-server-6.8.1-alt11, xscreensaver-4.18-alt2
Created attachment 628 [details] лог gdb У меня те же версии. Прилагаю лог gdb сессии.
xscreensaver: 10:52:23: disabling server builtin screensaver: xscreensaver: 10:52:23: (xset s 43200 0; xset s noblank; xset s expose) Пропробуйте в терминале выполнить последовательность команд: xset s 43200 0; xset s noblank; xset s expose Также попробуйте временно убрать ~/.xscreensaver, если проблема решилась, прикрепите конфиг к ошибке. Что говорит rpm -V xscreensaver ?
$ xset s 43200 0; xset s noblank; xset s expose X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 107 (X_SetScreenSaver) Value in failed request: 0xffffa8c0 Serial number of failed request: 8 Current serial number in output stream: 9 $ rpm -V xscreensaver ..?..... c /etc/pam.d/xscreensaver ..?..... /usr/X11R6/bin/xscreensaver переименование .xscreensaver помогло. Сейчас прикреплю
Created attachment 629 [details] .xscreensaver
Ещё хочу вывод xset q: 1. До любой попытки запуска xscreensaver 2. После _удачного_ запуска xscreensaver (без конфига) 3. После неудачного запуска xscreensaver Зпускать xscreensaver оба раза с -verbose и сказать, видны ли строки насчёт "disabling server builtin screensaver" и xset в stderr.
Охохо... Ужыс какой, xscreensaver не виноват: Из мана: SYNTAX XSetScreenSaver(display, timeout, interval, prefer_blanking, allow_exposures) Display *display; int timeout, interval; int prefer_blanking; int allow_exposures; Из кода: int desired_server_timeout, desired_server_interval; [...] XSetScreenSaver (si->dpy, desired_server_timeout, desired_server_interval, desired_prefer_blank, desired_allow_exp); Из лога: xscreensaver: 10:52:23: disabling server builtin screensaver: xscreensaver: 10:52:23: (xset s 43200 0; xset s noblank; xset s expose) 43200 - значение desired_server_timeout (параметр timeout) X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 107 (X_SetScreenSaver) Value in failed request: 0xffffa8c0 Значение 0xffffa8c0 соответсвует числу 43200, которое пытается обрабытываться как signed short int с преобразованием в int. Ренат, временным решением Вашей проблемы может быть указание таймаута меньше девяти часов (32767 секунд). Перевешиваю баг на xorg-X11-libs...
Ну вот оно: xc/include/Xproto.h: typedef struct { CARD8 reqType; BYTE pad; CARD16 length B16; INT16 timeout B16, interval B16; BYTE preferBlank, allowExpose; CARD16 pad2 B16; } xSetScreenSaverReq; xc/lib/X11/SetSSaver.c: int XSetScreenSaver(dpy, timeout, interval, prefer_blank, allow_exp) register Display *dpy; int timeout, interval, prefer_blank, allow_exp; { register xSetScreenSaverReq *req; LockDisplay(dpy); GetReq(SetScreenSaver, req); req->timeout = timeout; req->interval = interval; req->preferBlank = prefer_blank; req->allowExpose = allow_exp; UnlockDisplay(dpy); SyncHandle(); return 1; } int vs. INT16... Определение INT16 и B16 находится в xc/include/Xmd.h
полагаю этого будет достаточно --- xc/lib/X11/SetSSaver.c.orig 2004-12-15 17:56:28 +0300 +++ xc/lib/X11/SetSSaver.c 2004-12-15 17:54:14 +0300 @@ -31,7 +31,7 @@ int XSetScreenSaver(dpy, timeout, interval, prefer_blank, allow_exp) register Display *dpy; - int timeout, interval, prefer_blank, allow_exp; + short signed int timeout, interval, prefer_blank, allow_exp; { register xSetScreenSaverReq *req;
(In reply to comment #11) > полагаю этого будет достаточно > - int timeout, interval, prefer_blank, allow_exp; > + short signed int timeout, interval, prefer_blank, allow_exp; Нет. Есть мнение, что на эту функцию ссылаются некоторое количество стандартов и менять тип передаваемых аргументов будет не очень хорошо. Вместо этого можно в самом XSetScreenSaver устроить sanity check для переданных данных (например по & 0x7FFF)...
в таком случае я закрываю быгу как инвалид. как определитесь что фиксить делайте reopen
Я думаю, что стОит перевесить эту багу в XOrg'овскую багзиллу. Пусть они сами думаю что и где фиксить. У кого в этом смысле кунг-фу сильнее? (кто вешать будет?)
у меня с ангельским нелады... bugs.freedesktop.org, компонент xorg
https://bugs.freedesktop.org/show_bug.cgi?id=2081
замечательно. ребята там вменяемые, исправят быстро