eclipse-iceoryx / eclipse-iceoryx/iceoryx

icehello example may happen bug when system time rollback

Open
#1,292 15 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
C++
Stars
2.2k
Forks
492
Avg merge
18h 57m
Merged PRs (30d)
1

Description

## Required information

**Operating system:**
E.g. Ubuntu 20.04.3 LTS

**Compiler version:**
E.g. gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0

**Observed result or behaviour:**

```
iox-cpp-publisher-helloworld sent value: 8
iox-cpp-publisher-helloworld sent value: 9
iox-cpp-publisher-helloworld sent value: 10
iox-cpp-publisher-helloworld sent value: 11
iox-cpp-publisher-helloworld sent value: 12
iox-cpp-publisher-helloworld sent value: 13
/home/sxy/ros2_galactic/src/eclipse-iceoryx/iceoryx/iceoryx_utils/source/posix_wrapper/mutex.cpp:92 { bool iox::posix::mutex::lock() } ::: [ 22 ] Success
2022-03-16 15:58:22.422 [ Error ]: ICEORYX error! POPO__CHUNK_LOCKING_ERROR
iox-cpp-publisher-helloworld: /home/sxy/ros2_galactic/src/eclipse-iceoryx/iceoryx/iceoryx_utils/source/error_handling/error_handling.cpp:56: static void iox::ErrorHandler::ReactOnErrorLevel(iox::ErrorLevel, const char*): Assertion `false' failed.
Aborted
```
![image](https://user-images.githubusercontent.com/46369077/158523162-d1806e94-d67e-4570-8c7d-515b8ccc3a90.png)

**Expected result or behaviour:**
When system time rollback happened, all as usual.
```
iox-cpp-publisher-helloworld sent value: 4
iox-cpp-publisher-helloworld sent value: 5
iox-cpp-publisher-helloworld sent value: 6
iox-cpp-publisher-helloworld sent value: 7
iox-cpp-publisher-helloworld sent value: 8
iox-cpp-publisher-helloworld sent value: 9
iox-cpp-publisher-helloworld sent value: 10
iox-cpp-publisher-helloworld sent value: 11
iox-cpp-publisher-helloworld sent value: 12
iox-cpp-publisher-helloworld sent value: 13
iox-cpp-publisher-helloworld sent value: 14
iox-cpp-publisher-helloworld sent value: 15
iox-cpp-publisher-helloworld sent value: 16
iox-cpp-publisher-helloworld sent value: 17
^C2022-03-16 18:28:50.752 [Verbose]: RouDi cleaned up resources of iox-cpp-publisher-helloworld. Shutting down gracefully.
```

**Conditions where it occurred / Performed steps:**

```
1. iox-toudi
2. ./iox-cpp-subscriber-helloworld
3. iox-cpp-publisher-helloworld
4. timedatectl set-ntp false
5. timedatectl set-time 15:58:30 (and maybe need "timedatectl set-time 15:58:20"), to make system time rollback
```

Contributor guide

Open the contributing guide

Research direction

Reproduce the failure with the icehello publisher and subscriber, then disable NTP and roll the system clock back using the reported timedatectl steps. Start by reading iceoryx_utils/source/posix_wrapper/mutex.cpp around line 92 and iceoryx_utils/source/error_handling/error_handling.cpp around line 56. Done means the example continues publishing without the POPO__CHUNK_LOCKING_ERROR or assertion after the rollback.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
distributed-systems, operating-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.