[Wine] Unhandled page fault

L. Rahyen research at science.su
Thu Nov 1 09:40:27 CDT 2007


On Wednesday October 31 2007 12:59, Pedro Araújo wrote:
> On 10/30/07, L. Rahyen <research at science.su> wrote:
> >         Try to run:
> >
> > wineserver -k
> >
> >         Does this changes something?
>
> No, it has no effect. :-(
>
> > If not, try to reboot - maybe your hardware or
> > proprietary drivers are buggy; if this is the case reboot will help.
>
> Tried that too, no go. :-(

	Very bad! OK, let's start from beginning. Do the following steps; stop as 
soon as you get WINE working again. This is actually my general 
system-recovery instructions. I have added one WINE-specific additional step 
#2, other steps are generic.

	(I assume that you are using Debian-based distribution. If not then try to 
find out equivalent commands yourself - this should be easy if you know your 
system well; don't ask me, I use only Debian and nothing else)

	*	*	*

	1) Try to remember something special about the time when things stopped 
working. Maybe you changed something important? Try to revert your changes. 
If doesn't help, proceed to next step.

	2) Try to install binary version of WINE for your distribution. Does this 
help? If yes, something in your build is broken. If even binary package with 
WINE doesn't work for you then something is really broken in your system.

	3) It is good practice to have md5sums for your system files. By using them 
you always can find out what is changed or broken in your system. If there is 
no broken system files detected after checking md5sums or you have recent 
full backup then skip next step. If there is broken files then repair as 
usually. If you havn't md5sums for your system files and havn't recent 
backup - proceed to next step.

	4) If you at this step then this is disaster! Your system is broken! First 
run dpkg -C and apt-get -f install - both of this commands should return no 
errors and warnings. If even these simple commands don't work - go to step 6. 
If they work, you have two options:
	First is something that I call "smart force" (this is better than "brute 
force"). Try to think what may prevent your system to work as expected. Then 
reinstall packages that might be responsible. For example, if program FOO 
doesn't work correctly try the following:

for i in `dpkg-query -W -f='${Depends}' FOO | \
perl -pe 's/\(.*?\)//g' | \
sed 's/, //g'`
{ apt-get -y --reinstall install $i }
apt-get -y --reinstall install FOO

	...And see if it helps. If it doesn't help, think again what might be the 
cause of your problems. If you still don't know - think again! And again. And 
only when nothing help try brute force way (you also can try next step 
instead but it will take a lot of effort and time)... Execute:

rm -rf /etc.backup
cp -a /etc{,.backup}
for i in `dpkg-query -W -f='${Package} '`
{ apt-get -y --reinstall install $i }

	This may take a lot of time to complete. After this you can repair your /etc 
directory, either fully or partially.

	5) Recover your system from recent full backup either fully or partially. Now 
everything should work as before.
	If you havn't recent full backup - well, this is good lesson to you! Proceed 
to next step... You will need a lot of free time! Next time, remember to 
create full backups frequently.

	6) If nothing helps then install your distribution in VMWare, VirtualBox or 
other PC. If your system is so much broken that virtual machines don't work 
and you havn't other PC, install it in to other disk or partition. Now you 
have new clean system. Does it work as expected? If no, fix this. Then 
install all packages you have installed in your broken system. To do this, 
execute first in broken system:

dpkg-query -W -f='${Package} ' > my-package-list

	If broken system isn't working anymore, extract package list 
from /var/lib/dpkg/status. To do this, mount partition with your broken 
system at /mnt/broken-system and do the following (in the clean system):

mv /var/lib/dpkg/status{,~}
cp -a {/mnt/broken-system,}/var/lib/dpkg/status
dpkg-query -W -f='${Package} ' > my-package-list
mv /var/lib/dpkg/status{~,}

	Then to install all necessary packages execute:

for i in `cat my-package-list`
{ apt-get -y install $i }

	OK, you have working clean system with similar programs installed. Now you 
have two options:

	6.1) Fastest way. Just copy your /etc, home directory and everything else 
what you think is important from the broken system to the clean system. This 
should work out-of-the-box. However, if you have a lot of custom changes not 
tracked by packaging system and have no list of your custom changes this 
option isn't an option...
	6.2) Try to backup you system directories in broken system one-by-one and 
replacing them with similar directories from the clean system like this (I 
assume you executing this in the clean system and broken system is mounted 
at /mnt/broken-system):

mv /mnt/broken-system/var{,~}
cp -a {,/mnt/broken-system}/var

	...And so on for other top-level system directories until your broken system 
start to work as expected. Then try to replace subdirectories instead of 
top-level directories in your broken system. You need to remove everything 
you copied from the clean system and return everything to starting state. For 
example if you have touched only /var directory:

rm -rf /mnt/broken-system/var
mv /mnt/broken-system/var{~,}
mv /mnt/broken-system/var/lib{,~}
cp -a {,/mnt/broken-system}/var/lib

	...And so on until your broken system start to work as expected again. Now 
you will know better where is the cause of your problems! At the and you 
should know exactly what part of your system was responsible for the 
breakage. With this knowledge it is easy to repair.
	Of course in practice everything WILL be MUCH more difficult than I describe 
here. Make sure that you understand well what you are doing BEFORE doing it! 
Don't expect fast result! Don't just copy/paste! Think *before* hitting Enter 
to execute something! Remember, this *short* guide may contain typos and not 
everything is tested - all information here provided "as is" without any 
warranty!
	If it is hard for you to understand everything above - don't even try! You 
simply completely ruin your system without understanding what you are doing. 
If you're stuck and don't know what to do next - ask someone knowledgeable to 
help you.

	Typically, disaster recovery will took 4-30 hours of restless work (if you 
have full backup, recovery will be easy and fast, if not, prepare yourself 
for nightmare)! But at the end you will have working system again! Of course, 
it is good practice to make full backups, md5sums for system files, etc. This 
may help a lot in case of disaster - instead doing above tricks you can just 
recover from recent backup as described at step 5.

	*	*	*


> > If neither wineserver -k nor reboot doesn't help then try to run WINE
> > with strace, maybe this give more information about what happens.
>
> This I did, and the output is attached.

	Please compress such big files with bzip2! And also you can just e-mail such 
logs directly to person who ask them. There is no need to send such bug files 
to everyone who is subscribed to this list, really (many of subscribers are 
simple users).
	Sorry, but even from this log it is not obvious what's wrong. Last thing that 
I can suggest is to follow universal disaster-recovery guide above. If you 
follow it carefully then everything should work for you. First try steps 1, 
2, 3 and 5 (if possible). If this doesn't help than carefully follow next 
steps but they will took a lot of time if you havn't backup, and will require 
good knowledge and experience. Good luck!



More information about the wine-users mailing list