-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy path29af3a3.bug
87 lines (82 loc) · 2.32 KB
/
29af3a3.bug
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
%YAML 1.1
---
id: 29af3a3
title: "mavros ignores SIGINT and `rosnode kill mavros`"
description: >
MAVROS ignores SIGNT and `rosnode kill mavros`, but correctly
handles SIGTERM. Additionally, termination upon port closure also
fails, and produces the output given below.
[ERROR] [1408358771.110588398]: serial0:receive: End of file
terminate called after throwing an instance of
'std::system_error' what(): Resource deadlock avoided
This behaviour was caused by a premature closure of the serial device:
serial_dev.close();
io_service.stop();
The premature closure of the serial device caused io_service::run
to continue indefinitely, leading to a hang upon join in
MAVConnSerial::close.
The fix moves "serial_dev.close()" to immediately below
"io_service.stop()", which then terminates correctly and resolves
the bug.
classification: "CWE-362: Concurrent Execution using Shared Resource with Improper\
\ Synchronization ('Race Condition') #RESOURCE"
keywords:
- signal handling
system: mavros
severity: error
links: []
bug:
phase: runtime
specificity: UNKNOWN
architectural-location: N/A
application: N/A
task: N/A
subsystem: N/A
package: mavros
languages:
- C++
detected-by: developer
reported-by: member developer
issue: https://github.com/mavlink/mavros/issues/130
time-reported: 2014-08-18 (00:00)
reproducibility: N/A
trace: N/A
fix:
pull-request: https://github.com/mavlink/mavros/pull/527
fix-in:
- libmavconn/src/serial.cpp
languages:
- C++
time: 2016-03-27T20:53:24-04:00
commits:
- repo: https://github.com/mavlink/mavros
hash: 29af3a3c14da0e5b92ebad40b8befa8e0141b63d
stats:
total:
insertions: 1
deletions: 1
lines: 2
files: 1
files:
libmavconn/src/serial.cpp:
insertions: 1
deletions: 1
lines: 2
time-machine:
ros_distro: indigo
ros_pkgs:
- mavros
datetime: 2016-03-27T20:53:24-04:00
bugzoo:
is-build-failure: false
bug-commit: 7b742cfdab5f8af5cef35481e9ce8c214a9a335a
fix-commit: 29af3a3c14da0e5b92ebad40b8befa8e0141b63d
fork-urls:
- https://github.com/robust-rosin/mavros
fault-codes:
- PROGRAMMING:RESOURCES
- PROGRAMMING:CONTROL-FLOW
- CONCURRENCY:SIGNALS
failure-codes:
- SOFTWARE:LIVENESS
- SYSTEM:LOSS-OF-FUNCTIONALITY