Actions
Bug #4651
closedlibproc assertion failure
Status:
Closed
Priority:
Normal
Assignee:
-
Category:
lib - userland libraries
Start date:
2014-02-28
Due date:
% Done:
90%
Estimated time:
Difficulty:
Medium
Tags:
Gerrit CR:
Description
I have a private qemu-system-x86_64 lofs mounted over /smartdc/bin/qemu-system-x86_64. Within a zone, /smartdc is a lofs mount from the global zone. Running any tool that uses libproc on this qemu (e.g. mdb, gcore, dtrace, etc) causes the tool to die with an assertion failure
Assertion failed: p == tmp, file ../common/Pzone.c, line 432
We come in to the function with: /zones/ef9755b3-dacc-43b2-a342-ef8730755f97/root/smartdc/bin/qemu-system-x86_64 We work our way through the path looking for a lofs mount until we hit: /zones/ef9755b3-dacc-43b2-a342-ef8730755f97/root/smartdc This is a lofs mount so we go into the block at line 382, tmp2 is: '/smartdc' and p[1] is 'bin/qemu-system-x86_64' that block does the resolvepath on: /smartdc/bin/qemu-system-x86_64 and loops around. We then see that qemu-system-x86_64 is a lofs mount so we are in the same block again but with tmp2 as 'qemu-system-x86_64' and p[1] as ''. resolvepath is called with 'qemu-system-x86_64/', returns -1 and we loop around, then hit the assert.
Actions