enthought / mayavi

3D visualization of scientific data in Python
http://docs.enthought.com/mayavi/mayavi/
Other
1.31k stars 285 forks source link

Build hangs on Fedora 34 #1049

Closed opoplawski closed 3 years ago

opoplawski commented 3 years ago

When trying to build the mayavi package on Fedora 34, the build hangs:

+ SPHINXBUILD=/usr/bin/sphinx-build-3
+ /usr/bin/python3 setup.py build '--executable=/usr/bin/python3 -s'
running build
----------------------------------------------------------------------
Building TVTK classes...

strace shows:

write(1, "Building TVTK classes... ", 25Building TVTK classes... ) = 25
getcwd("/home/orion/fedora/Mayavi/mayavi-4.7.3", 1024) = 39
chdir("/home/orion/fedora/Mayavi/mayavi-4.7.3/tvtk") = 0
getcwd("/home/orion/fedora/Mayavi/mayavi-4.7.3/tvtk", 1024) = 44
getpid()                                = 4162
getrandom("\xfc\xeb\x3e\x31\x0f\x5a\x98\xe3\x06\xea\x9a\xbd\x4e\xbc\x86\x26\xb8\x75\x76\x37\xbd\xe5\xc5\xec\xb4\xe2\xf3\xe7\x6c\xbf\xe5\x23"..., 2496, GRND_NONBLOCK) = 2496
openat(AT_FDCWD, "/tmp/cpp6pyan", O_RDWR|O_CREAT|O_EXCL|O_NOFOLLOW|O_CLOEXEC, 0600) = 3
newfstatat(3, "", {st_mode=S_IFREG|0600, st_size=0, ...}, AT_EMPTY_PATH) = 0
ioctl(3, TCGETS, 0x7fff5f6f1240)        = -1 ENOTTY (Inappropriate ioctl for device)
lseek(3, 0, SEEK_CUR)                   = 0
write(3, "blat", 4)                     = 4
close(3)                                = 0
unlink("/tmp/cpp6pyan")                 = 0
getpid()                                = 4162
getrandom("\xd3\x99\x13\xec\x46\xbf\x6c\x35\x6b\x9f\xdf\x64\xfc\x27\xca\x02\xdd\xd4\x6a\x72\x3d\x07\xd5\x2f\x28\x9c\x24\xa6\x98\x43\x3d\x3b"..., 2496, GRND_NONBLOCK) = 2496
mkdir("/tmp/tmpqcxiz7h2", 0700)         = 0
newfstatat(AT_FDCWD, "/tmp/tmpqcxiz7h2/tvtk_classes", 0x7fff5f6f1760, 0) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/tmp/tmpqcxiz7h2", {st_mode=S_IFDIR|0700, st_size=40, ...}, 0) = 0
mkdir("/tmp/tmpqcxiz7h2/tvtk_classes", 0777) = 0
mmap(NULL, 262144, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f9a6e524000
mmap(NULL, 262144, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f9a6e4e4000
mmap(NULL, 262144, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f9a6e4a4000
mmap(NULL, 262144, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f9a6e464000
mmap(NULL, 262144, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f9a6e424000
mmap(NULL, 262144, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f9a6e3e4000
openat(AT_FDCWD, "/tmp/tmpqcxiz7h2/tvtk_classes/__init__.py", O_WRONLY|O_CREAT|O_TRUNC|O_CLOEXEC, 0666) = 3
newfstatat(3, "", {st_mode=S_IFREG|0644, st_size=0, ...}, AT_EMPTY_PATH) = 0
ioctl(3, TCGETS, 0x7fff5f6f1a60)        = -1 ENOTTY (Inappropriate ioctl for device)
lseek(3, 0, SEEK_CUR)                   = 0
ioctl(3, TCGETS, 0x7fff5f6f1860)        = -1 ENOTTY (Inappropriate ioctl for device)
lseek(3, 0, SEEK_CUR)                   = 0
close(3)                                = 0
openat(AT_FDCWD, "/tmp/tmpqcxiz7h2/tvtk_classes/vtk_version.py", O_WRONLY|O_CREAT|O_TRUNC|O_CLOEXEC, 0666) = 3
newfstatat(3, "", {st_mode=S_IFREG|0644, st_size=0, ...}, AT_EMPTY_PATH) = 0
ioctl(3, TCGETS, 0x7fff5f6f1a60)        = -1 ENOTTY (Inappropriate ioctl for device)
lseek(3, 0, SEEK_CUR)                   = 0
ioctl(3, TCGETS, 0x7fff5f6f1860)        = -1 ENOTTY (Inappropriate ioctl for device)
lseek(3, 0, SEEK_CUR)                   = 0
write(3, "vtk_build_version = '9.0'\nvtk_bu"..., 70) = 70
close(3)                                = 0
openat(AT_FDCWD, "/tmp/tmpqcxiz7h2/tvtk_classes/tvtk_helper.py", O_WRONLY|O_CREAT|O_TRUNC|O_CLOEXEC, 0666) = 3
newfstatat(3, "", {st_mode=S_IFREG|0644, st_size=0, ...}, AT_EMPTY_PATH) = 0
ioctl(3, TCGETS, 0x7fff5f6f1a60)        = -1 ENOTTY (Inappropriate ioctl for device)
lseek(3, 0, SEEK_CUR)                   = 0
ioctl(3, TCGETS, 0x7fff5f6f1860)        = -1 ENOTTY (Inappropriate ioctl for device)
lseek(3, 0, SEEK_CUR)                   = 0

This never seems to complete and FD 3 remains open. It continues with FD4:

openat(AT_FDCWD, "/tmp/tmpqcxiz7h2/tvtk_classes/object_base.py", O_WRONLY|O_CREAT|O_TRUNC|O_CLOEXEC, 0666) = 4
newfstatat(4, "", {st_mode=S_IFREG|0644, st_size=0, ...}, AT_EMPTY_PATH) = 0
ioctl(4, TCGETS, 0x7fff5f6f18f0)        = -1 ENOTTY (Inappropriate ioctl for device)
lseek(4, 0, SEEK_CUR)                   = 0
lseek(4, 0, SEEK_CUR)                   = 0
write(4, "# Automatically generated code: "..., 7967) = 7967
write(4, "            traits_view = \\\n    "..., 432) = 432
close(4)                                = 0

until:

openat(AT_FDCWD, "/tmp/tmpqcxiz7h2/tvtk_classes/web_application.py", O_WRONLY|O_CREAT|O_TRUNC|O_CLOEXEC, 0666) = 4
newfstatat(4, "", {st_mode=S_IFREG|0644, st_size=0, ...}, AT_EMPTY_PATH) = 0
ioctl(4, TCGETS, 0x7fff5f6f18f0)        = -1 ENOTTY (Inappropriate ioctl for device)
lseek(4, 0, SEEK_CUR)                   = 0
lseek(4, 0, SEEK_CUR)                   = 0
rt_sigprocmask(SIG_BLOCK, ~[], [], 8)   = 0
clone(child_stack=0x7f9a6e3e2ef0, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tid=[4171], tls=0x7f9a6e3e3640, child_tidptr=0x7f9a6e3e3910) = 4171
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, ~[], [], 8)   = 0
clone(child_stack=0x7f9a6dbe1ef0, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tid=[4172], tls=0x7f9a6dbe2640, child_tidptr=0x7f9a6dbe2910) = 4172
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, ~[], [], 8)   = 0
clone(child_stack=0x7f9a6d3e0ef0, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tid=[4173], tls=0x7f9a6d3e1640, child_tidptr=0x7f9a6d3e1910) = 4173
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
futex(0x560329578cc0, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, NULL, FUTEX_BITSET_MATCH_ANYstrace: Process 4172 attached
strace: Process 4173 attached
strace: Process 4171 attached
 <unfinished ...>
[pid  4172] set_robust_list(0x7f9a6dbe2920, 24) = 0
[pid  4172] rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
[pid  4172] futex(0x560329578cc0, FUTEX_WAKE_PRIVATE, 1 <unfinished ...>
[pid  4162] <... futex resumed>)        = 0
[pid  4172] <... futex resumed>)        = 1
[pid  4162] futex(0x560329578c70, FUTEX_WAKE_PRIVATE, 1) = 0
[pid  4162] futex(0x7f9a6d3e1910, FUTEX_WAIT_BITSET|FUTEX_CLOCK_REALTIME, 4173, NULL, FUTEX_BITSET_MATCH_ANY <unfinished ...>
[pid  4172] madvise(0x7f9a6d3e2000, 8368128, MADV_DONTNEED) = 0
[pid  4172] exit(0)                     = ?
[pid  4172] +++ exited with 0 +++
[pid  4173] set_robust_list(0x7f9a6d3e1920, 24 <unfinished ...>
[pid  4171] set_robust_list(0x7f9a6e3e3920, 24 <unfinished ...>
[pid  4173] <... set_robust_list resumed>) = 0
[pid  4171] <... set_robust_list resumed>) = 0
[pid  4173] rt_sigprocmask(SIG_SETMASK, [],  <unfinished ...>
[pid  4171] rt_sigprocmask(SIG_SETMASK, [],  <unfinished ...>
[pid  4173] <... rt_sigprocmask resumed>NULL, 8) = 0
[pid  4171] <... rt_sigprocmask resumed>NULL, 8) = 0
[pid  4173] futex(0x560329578d58, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, NULL, FUTEX_BITSET_MATCH_ANY <unfinished ...>
[pid  4171] futex(0x560329578d58, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, NULL, FUTEX_BITSET_MATCH_ANY

Then we seem to hit a deadlock. This is using python 3.9.5.

rahulporuri commented 3 years ago

thanks for the headsup @opoplawski . I'll try to recreate this and get back to you, hopefully this weekend.

larsoner commented 3 years ago

Locally I can get a hang under some circumstances when building on Windows with the latest pip-pre wheel VTK just released. See https://gitlab.kitware.com/vtk/vtk/-/issues/18234 for example