Skip to content

record: suggestion for fallback with named pipe creation #1804

@DanielTimLee

Description

@DanielTimLee

Specifically, some file systems like vboxsf and FAT do not support
mkfifo(). As a result, the 'uftrace record' fails when creating the
.channel file for communication.

# uftrace record -vvv -P . ./spintest
uftrace: running uftrace v0.14-21-gafed ( x86_64 dwarf python3 luajit tui perf sched dynamic )
uftrace: checking binary ./spintest
uftrace: removing uftrace.data.old directory
uftrace: /home/vagrant/uftrace/cmds/record.c:2273:command_record
 ERROR: cannot create a communication channel: Operation not permitted

To address this issue, one proposed solution is creating a fallback
channel
through tmpfs, which does support mkfifo(). In this
suggestion, the .channel file will be named as the following.
/tmp/<dirname>.channel

I'm aware that this problem can be simply avoided by executing uftrace
from other directory which doesn't affected by the specified file
systems. However, it would be preferable if uftrace handles by itself or at
least give heads up regarding this limitation.

Regarding this matter, I have created a rough patch. I would
appreciate it if you could review it.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions