Skip to content

Shadow deadlocks when managed process aborts #1715

@stevenengler

Description

@stevenengler

test.c:

#include <stdlib.h>

int main() {
    abort();
}

shadow.yaml:

general:
  stop_time: 2 min
network:
  graph:
    type: 1_gbit_switch
hosts:
  server:
    network_node_id: 0
    processes:
    - path: test
      start_time: 1

When running with:

shadow -l debug shadow.yaml

Shadow gets stuck at:

00:00:00.047023 [22763:shadow-worker] 00:00:01.000000000 [INFO] [server:11.0.0.1] [thread_preload.c:200] [threadpreload_run] forking new thread with environment 'SHADOW_SPAWNED=TRUE SHADOW_LOG_START_TIME=29754246233 SHADOW_LOG_LEVEL=4 SHADOW_INTERPOSE_METHOD=PRELOAD LD_PRELOAD=[snip] SHADOW_LOG_FILE=[snip] SHADOW_IPC_BLK=8,134217728,648,/shadow_shmemfile_29754.293148005-22755 SHADOW_USE_SECCOMP= SHADOW_PID=22755 SHADOW_TSC_HZ=2592000000', arguments '/home/steve/deadlock/test', and working directory '/home/steve/deadlock/shadow.data/hosts/server'
00:00:00.047101 [22763:shadow-worker] 00:00:01.000000000 [DEBUG] [server:11.0.0.1] [thread_preload.c:148] [_threadpreload_fork_exec] started process /home/steve/deadlock/test with PID 22776
00:00:00.047104 [22763:shadow-worker] 00:00:01.000000000 [INFO] [server:11.0.0.1] [process.c:522] [_process_start] process 'server.test.1000' started
00:00:00.047106 [22763:shadow-worker] 00:00:01.000000000 [DEBUG] [server:11.0.0.1] [process.c:576] [process_continue] switching to thread controller to continue executing process 'server.test.1000'

This bug only exists in preload mode.

Metadata

Metadata

Assignees

Labels

Type: BugError or flaw producing unexpected results

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions