Ранее работавшие в wine программы перестали запускаться. В консоли диагностика - err:module:attach_process_dlls "winspool.drv" failed to initialize, aborting err:module:LdrInitializeThunk Main exe initialization for L"C:\\InisSoft\\Space\\ut\\ut_test.exe" failed, status c0000005 впрочем, winecfg в этом WINEPREFIX-е тоже не запускается: err:module:attach_process_dlls "winspool.drv" failed to initialize, aborting err:module:LdrInitializeThunk Main exe initialization for L"C:\\windows\\system32\\winecfg.exe" failed, status c0000005 В strace загрузки winspool.drv есть строки: 0.000045 open("/home/lana/.wine-znak/dosdevices/c:/users", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 16 0.000085 brk(0x7c549000) = 0x7c549000 0.000051 getdents64(16, /* 4 entries */, 32768) = 104 0.000109 getdents64(16, /* 0 entries */, 32768) = 0 0.000046 brk(0x7c541000) = 0x7c541000 0.000051 close(16) = 0 0.000053 --- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0} --- 0.000037 rt_sigreturn() = 0 Проблема скорее всего не связана с обновлением ПО, так как в период с последнего успешного использования программы до момента отказа обновления не проводились. Предположительно проблема возникла в следствии того, что на одном из компьютеров в cups "расшарили" принтер. OS ALT Linux 6.0.2 KDesktop (Centaurea Sadleriana), на клиенте работают и cups и avahi-daemon
Created attachment 5979 [details] Фрагмент лога с WINEDEBUG=all
Прошу прощения за то, что начал писать ошибку не испробовав все варианты разрешить проблему самостоятельно. Оказалось, что эта ошибка - на 90% моя и только на 10% - wine. История такая. Этот префикс wine у меня упакован в пакет и в домашний директорий пользователя разворачивается из архива. При создании архива я удалил C:\users\<имя пользователя>, но не догадался внести правки в реестр, поэтому там остались настройки типа TMP=C:\users\<имя пользователя>\Temp. Это нисколько не мешало работать windows программе в wine, и моя ошибка была невидима больше года. Как я уже писал, на днях я "расшарил" принтер, avahi подсуетился и wine на ученических машинках стал настраивать принтеры. При этом wine пытается создать директорий %TMP%\wine_ppds\ , но не может сделать этого. В приложении помещу избранные места из отчёта, созданного при WINEDEBUG=all. Признаю свою ошибку, но мне кажется, что было бы полезно внести небольщое изменение в wine. В порядке убывания предпочтительности можно сделать: - Разрешить рекурсивно создавать временный директорий - и/или - В случае неуспеха использования %TMP% предусмотреть fallback C:\Temp - или - завершать запуск winespool.drv, но не сегфолтом, а с сообщением с явным указанием причины прекращения работы.
Перенесу на Sisyphus, чтобы предложение не потерялось.
> - и/или - В случае неуспеха использования %TMP% предусмотреть fallback C:\Temp > - или - завершать запуск winespool.drv, но не сегфолтом, а с сообщением с явным указанием причины прекращения работы. Падение при невозможности создать временный каталог — это, конечно, ошибка. А использование %TMP% не должно быть иным, чем в Windows. Я бы сделал где-то на старте проверку, доступен ли TMP на запись, то есть такая проверка на валидность настроек...
> Падение при невозможности создать временный каталог — это, конечно, ошибка. > А использование %TMP% не должно быть иным, чем в Windows. Согласен, но версий windows было достаточно много и меня укачивает при мысли, что кто-то будет ставить по очереди все версии и проверять как оно там было :) Насколько я помню, для "системных" процессов там был %WINDIR%/Temp, но мой последний windows был W2K. Так что поведение wine в вопросе временных файлов уже отличается от windows. > Я бы сделал где-то на старте проверку, доступен ли TMP на запись, то есть такая > проверка на валидность настроек... Это тоже приемлемо. По крайней мере это сразу выявит ошибки пользователей wine, а не отложит их на полтора года.
Не указана версия пакета wine, но думаю, что старая, которая была в p6. Сейчас на wine-1.7.4 вижу такое сообщение: err:winediag:FILE_CreateFile failed to open L"\\??\\C:\\windows\\profiles\\502\\Temp\\wine_ppds\\" because of insufficient access rights Хотя может быть я не воспроизвожу.
(В ответ на комментарий №6) > Не указана версия пакета wine, но думаю, что старая, которая была в p6. да, это "штатный" шестёрочный wine-1.6-rc3
Думаю, сейчас всё достаточно изменилось, чтобы такой проблемы не было.