VMware Communities
___Max___
Contributor
Contributor

vmware-vmx segfaults ONLY when mks.enable3d=TRUE

Ubuntu 7.04 64-bit, Intel Core 2 Duo E6600, nVidia drivers (100.14.09), vmWare Player 6

Subj. summarizes it rather well. The segfault is due to an illegal instruction; apparently happens inside an X call (libX11 shared is on top of stack). I have gathered core dump, strace report, apport crash file but don't see how to attach archive to a forum message. 100% reproducible; everything works fine without enable3d.

Thanks in advance for any ideas on fixing this. I am quite willing to spend more time debugging the issue on my system.

...Max...

Reply
0 Kudos
4 Replies
___Max___
Contributor
Contributor

typo: vmWare Player 2

Reply
0 Kudos
KevinG
Immortal
Immortal

Hi Max,

Is Ubuntu 7.04 64-bit the host or guest OS? (please list both)

What is the exact contents of the error?

Reply
0 Kudos
___Max___
Contributor
Contributor

Ubuntu 7.04 is the host

Windows XP SP2 is the guest

The error is basically a segfault in vmware-vmx:

Jun 22 12:51:43 virtu kernel: \[132092.534766] vmware-vmx\[12404]: segfault at 00000000ff188f5c rip 00000000080af9f5 rsp 00000000ff188f60 error 6

This is what gdb gave me as a backtrace:

0x080528f8 in ?? ()

#0 0x080528f8 in ?? ()

#1 0xf7d00ef0 in ?? ()

#2 0x00000001 in ?? ()

#3 0x00000001 in ?? ()

#4 0x00000000 in ?? ()

According to procmap from apport crash file the #1 address is in /usr/lib32/libX11.so.6.2.0 but since apport did not work in the same run as gdb, I cannot be sure this is the case. Below is a fragment of strace log. It is neither beginning nor end, just the place around the segfault. The shared libs that are apparently mmap-ped by the loader before crash occurs are:

/lib32/libm.so.6 /lib32/libdl.so.2 /lib32/libpthread.so.0 /lib32/libc.so.6 /usr/lib32/libX11.so.6 /usr/lib32/libXtst.so.6 /usr/lib32/libXext.so.6 /usr/lib32/libXrender.so.1 /usr/lib32/libz.so.1 /usr/lib32/libXau.so.6 /usr/lib32/libXdmcp.so.6 /usr/lib/vmware/lib/libcrypto.so.0.9.7-i386/libcrypto.so.0.9.7 /usr/lib/vmware/lib/libssl.so.0.9.7-i386/libssl.so.0.9.7 /lib32/libnss_compat.so.2 /lib32/libnsl.so.1 /lib32/libnss_nis.so.2 /lib32/libnss_files.so.2

So, definitely NOT libGL*...

========================

open("/proc/uptime", O_RDONLY|O_LARGEFILE) = 47

read(47, "1597.19 1519.85\n", 511) = 16

close(47) = 0

uname(\{sys="Linux", node="virtu", ...}) = 0

stat64(0xf7f3a89c, 0xff907b00) = 0

open("/etc/resolv.conf", O_RDONLY) = 47

fstat64(0x2f, 0xff905994) = 0

mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0xff905958) = 0xfffffffff7fa7000

read(47, "# generated by NetworkManager, d"..., 4096) = 101

read(47, "", 4096) = 0

close(47) = 0

munmap(0xf7fa7000, 4096) = 0

open("/etc/hosts", O_RDONLY) = 47

fcntl64(47, F_GETFD) = 0

fcntl64(47, F_SETFD, FD_CLOEXEC) = 0

fstat64(0x2f, 0xff907a0c) = 0

mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0xff9079d0) = 0xfffffffff7fa7000

read(47, "127.0.0.1\tlocalhost\n127.0.1.1\tvi"..., 4096) = 241

read(47, "", 4096) = 0

close(47) = 0

munmap(0xf7fa7000, 4096) = 0

socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 47

ioctl(47, SIOCGIFHWADDR, \{ifr_name="eth0", ifr_hwaddr=00:04:4b:06:41:65}) = 0

close(47) = 0

gettimeofday(\{3490164621710716, 18415362173744934394}, NULL) = 0

stat64(0xf7f39ad7, 0xff906eb8) = 0

writev(21, [\{umovestr: Input/output error

0x1aff907190, 236215890448}, \{umovestr: Input/output error

0x467c157c, 18415344293522171137}], 2) = 80

stat64(0x86e0c48, 0xff907fcc) = -1 ENOENT (No such file or directory)

umask(0

\--- SIGSEGV (Segmentation fault) @ 0 (0) ---

\--- SIGSEGV (Segmentation fault) @ 0 (0) ---

\--- SIGSEGV (Segmentation fault) @ 0 (0) ---

============================================

Reply
0 Kudos
___Max___
Contributor
Contributor

By the way... is vmware-vmx SUPPOSED to run in 32-bit mode in the 64-bit system?

Reply
0 Kudos