Summary: | Битый msiexec.exe после создания wineprefix | ||
---|---|---|---|
Product: | WINE@Etersoft | Reporter: | Александр Морозов <amorozov> |
Component: | Общее | Assignee: | Александр Морозов <amorozov> |
Status: | CLOSED FIXED | QA Contact: | Andrey Vusik <night> |
Severity: | major | ||
Priority: | P1 | CC: | baraka, stas, svzhu |
Version: | 1.0.12 | ||
Target Milestone: | --- | ||
Hardware: | PC | ||
OS: | Linux | ||
Whiteboard: | |||
Заявки RT: | Связано с: | 5798 | |
Дата напоминания: | |||
Bug Depends on: | |||
Bug Blocks: | 7052 |
Description
Александр Морозов
2011-06-07 13:54:34 MSK
Почему портится msiexec.exe, не очень понятно. Проблема возникла после патча "Close file handle before running UNIX binary (eterbug #4125)." Если точнее, то она возникает из-за того, что в данном патче в вызове ignore_locks (бывший close_lock_fd) не закрывается rw-дескриптор, необходимый для обхода бага с F_GETLK на NFS. Если этот дескриптор закрывать, то проблемы нет. Вызов ignore_locks - это хак для бага #5643, которого могло бы и не быть. Т.е. корень проблемы не в последнем патче для #4125, а в хаке для NFS. Функция server_get_unix_fd проверяет соответствие запрашиваемых прав на файл тем, с которыми он был открыт, так что если программа открыла файл только на чтение, то она не сможет вызвать для него WriteFile, даже если реально используется rw-дескриптор. Поэтому не очень ясно, каким образом хак с использованием rw-дескриптора приводит к такой проблеме. Решил вернуть закрытие rw-дескриптора. ubuntu 10.10 WINE@Etersoft 1.0 Network 1.0.12-eter11.16/22 файл создается корректно: guest@Ubuntu10:~/wine_c/windows/system32$ file msiexec.exe msiexec.exe: PE32 executable for MS Windows (GUI) Intel 80386 32-bit (В ответ на comment #2) > ubuntu 10.10 > WINE@Etersoft 1.0 Network 1.0.12-eter11.16/22 > файл создается корректно: > guest@Ubuntu10:~/wine_c/windows/system32$ file msiexec.exe > msiexec.exe: PE32 executable for MS Windows (GUI) Intel 80386 32-bit Принято |