Skip to content

'process_getWriteablePtr()' assertion fails in 'syscallhandler_newfstatat()' #1332

@stevenengler

Description

@stevenengler

The syscallhandler_newfstatat() syscall handler seems to cause an assertion in process_getWriteablePtr() to fail in ptrace and hybrid modes.

**ERROR ENCOUNTERED**
	At process: 11036 (parent 11034)
	At file: /__w/shadow/shadow/src/main/host/process.c
	At line: 914
	At function: process_getWriteablePtr
	Message: proc->memoryReaders->len == 0
**BEGIN BACKTRACE**
Obtained 26 stack frames:
	/__w/shadow/shadow/build/src/main/shadow() [0x86adac]
	/__w/shadow/shadow/build/src/main/shadow(utility_handleError+0x34) [0x869bd4]
	/__w/shadow/shadow/build/src/main/shadow(process_getWriteablePtr+0xdd) [0x88219d]
	/__w/shadow/shadow/build/src/main/shadow(syscallhandler_newfstatat+0xd2) [0x89f512]
	/__w/shadow/shadow/build/src/main/shadow(syscallhandler_make_syscall+0x1b62) [0x898e12]
	/__w/shadow/shadow/build/src/main/shadow() [0x88b7ce]
	/__w/shadow/shadow/build/src/main/shadow() [0x888907]
	/__w/shadow/shadow/build/src/main/shadow(threadptrace_resume+0x198) [0x887e88]
	/__w/shadow/shadow/build/src/main/shadow(thread_resume+0xb1) [0x8848a1]
	/__w/shadow/shadow/build/src/main/shadow(process_continue+0x129) [0x8809f9]
	/__w/shadow/shadow/build/src/main/shadow() [0x883223]
	/__w/shadow/shadow/build/src/main/shadow() [0x881259]
	/__w/shadow/shadow/build/src/main/shadow(task_execute+0x6a) [0x87230a]
	/__w/shadow/shadow/build/src/main/shadow(event_execute+0x121) [0x871d21]
	/__w/shadow/shadow/build/src/main/shadow(worker_runEvent+0x32) [0x8737e2]
	/__w/shadow/shadow/build/src/main/shadow() [0x86cfee]
	/__w/shadow/shadow/build/src/main/shadow(_workerpool_startTaskFn+0x7c) [0x872acc]
	/__w/shadow/shadow/build/src/main/shadow(workerpool_startTaskFn+0xa3) [0x873313]
	/__w/shadow/shadow/build/src/main/shadow(scheduler_continueNextRound+0x5e) [0x86cf7e]
	/__w/shadow/shadow/build/src/main/shadow(manager_run+0x9f) [0x8548cf]
	/__w/shadow/shadow/build/src/main/shadow(controller_run+0x203) [0x852583]
	/__w/shadow/shadow/build/src/main/shadow() [0x851d76]
	/__w/shadow/shadow/build/src/main/shadow(main_runShadow+0x46b) [0x851a4b]
	/__w/shadow/shadow/build/src/main/shadow(main+0x22) [0x851582]
	/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xd5) [0x7f73b8f6b565]
	/__w/shadow/shadow/build/src/main/shadow(_start+0x2e) [0x85149e]
**END BACKTRACE**
**ABORTING**
43% tests passed, 107 tests failed out of 187

Total Test time (real) =  42.63 sec

The following tests FAILED:
	  5 - bindc-shadow-hybrid (Failed)
	  6 - bindc-shadow-ptrace (Failed)
	  9 - clone-shadow-hybrid (Failed)
	 10 - clone-shadow-ptrace (Failed)
	 12 - config-convert-run-shadow (Failed)
	 14 - config-stdin-shadow-hybrid (Failed)
         ...

We've only seen this occur on Ubuntu 21.04, likely because syscallhandler_newfstatat() wasn't being called on other platforms.

Metadata

Metadata

Assignees

Labels

Component: MainComposing the core Shadow executableType: BugError or flaw producing unexpected results

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions