Project

General

Profile

Actions

Bug #4651

closed

libproc assertion failure

Added by Robert Mustacchi about 8 years ago. Updated about 8 years ago.

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 #1

Updated by Robert Mustacchi about 8 years ago

  • Status changed from New to Closed

Dup of 3750.

Actions

Also available in: Atom PDF