Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Segmentation fault #20

Open
kichel98 opened this issue Nov 6, 2020 · 3 comments
Open

Segmentation fault #20

kichel98 opened this issue Nov 6, 2020 · 3 comments
Labels
analiza rzutu Zadania związane z główną funkcjonalnością - wykrywaniem wbicia rzutki i uzyskaniem liczby punktów bug Coś nie działa

Comments

@kichel98
Copy link
Owner

kichel98 commented Nov 6, 2020

Na RPi Zero, po włączeniu skryptu main_pi0.py, zdarza się, że po pewnym czasie wyrzucany jest Segmentation fault i program się kończy. Dodano dodatkowe logi za pomocą paczki faultenabler, ale miejsce błędu nie jest zawsze to samo.
Przykładowo:
Fatal Python error: Segmentation fault
Current thread 0xb6f918e0 (most recent call first):
File "/home/pi/Desktop/pi-darts/rpi/src/throw_detector.py", line 43 in look_for_throw
File "main_pi0.py", line 17 in main
File "main_pi0.py", line 27 in <module>
Segmentation fault
ale zdarzało się także w camera.py, take_image().

Początkowo przypuszczałem problemy z poprawnym zamykaniem zasobów, który prowadziłby do Out of memory (bo i taki błąd się zdarzał, a nawet Kernel panic), ale po naprawie tego problem dalej występuje. Jedynym pomysłem, jaki teraz mam, jest błędna instalacja OpenCV (niezgodna z architekturą), dlatego należy spróbować jednak zbudować OpenCV na RPi Zero ze źródeł i zobaczyć, czy problem się utrzymuje.

@kichel98 kichel98 added bug Coś nie działa analiza rzutu Zadania związane z główną funkcjonalnością - wykrywaniem wbicia rzutki i uzyskaniem liczby punktów labels Nov 6, 2020
@kichel98
Copy link
Owner Author

kichel98 commented Nov 6, 2020

Coraz bardziej skłaniam się ku myśli, że to jednak jest Out of memory error. Nie wiem jedynie, czy dochodzi do jakiegoś wycieku pamięci, czy może zwyczajnie zasoby RPi Zero są niewystarczające (czy da się coś z tym zrobić?).

@kichel98
Copy link
Owner Author

kichel98 commented Dec 9, 2020

W /var/log/kern.log mogłem po wystąpieniu segfaulta zaobserwować taki wpis:
kernel: [ 5201.255640] Unhandled fault: vector exception (0x000) at 0xa841c000
Segfault wychodził przy linijce z użyciem funkcji findContours. Kod, który jest odpalany na Pi Zero nie różni się zbytnio od tego na Pi 4 pod względem przetwarzania obrazu (praktycznie w ogóle), a na Pi 4 problem nigdy nie występuje, więc jedynymi różnicami pozostają zasoby (przy Out of memory miałoby to sens, ale przy vector exception?) oraz sposób instalacji. Pierwszą rzeczą do zrobienia jest zdecydowanie przeinstalowanie OpenCV na Pi Zero.

@kichel98
Copy link
Owner Author

Przeinstalowałem OpenCV i nic to nie dało. Dalej różnego rodzaju błędy, np. Unable to handle kernel NULL pointer dereference at virtual address. Zrobiłem większy research i znalazłem takie wątki: GH Issue, RPi forum. Wielu ludziom pomaga zmiana w parametrów związanych z overclocking, tu link do dokumentacji: link.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
analiza rzutu Zadania związane z główną funkcjonalnością - wykrywaniem wbicia rzutki i uzyskaniem liczby punktów bug Coś nie działa
Projects
None yet
Development

No branches or pull requests

1 participant