matgoebl / kogmo-rtdb Goto Github PK
View Code? Open in Web Editor NEWReal-Time Database (not only) for Cognitive Automobiles
Home Page: www.kogmo-rtdb.de
Real-Time Database (not only) for Cognitive Automobiles
Home Page: www.kogmo-rtdb.de
When using kogmo-rtdb together with glibc v2.25 (currently the default version in arch linux), there occur freezes/deadlocks.
Reproducing the error:
kogmo_rtdb_writer
and kogmo_rtdb_reader
kogmo_rtdb_man
kogmo_rtdb_writer
kogmo_rtdb_reader
; all should work as expectedkogmo_rtdb_reader
, e.g. via CTRL+C
kogmo_rtdb_reader
: both reader and writer freezeBacktrace from kogmo_rtdb_reader
:
(gdb) bt
#0 0x00007ffff779c477 in pthread_cond_broadcast@@GLIBC_2.3.2 () from /usr/lib/libpthread.so.0
#1 0x00007ffff7bbef4d in kogmo_rtdb_ipc_condvar_signalall (condvar=0x7fffb70fc360)
at /home/haja/git/kogmo-rtdb/rtdb/kogmo_rtdb_ipc_posix.c:660
#2 0x00007ffff7bc494c in kogmo_rtdb_obj_do_notify (objmeta_p=0x7fffb70d7340, db_h=0x603010)
at /home/haja/git/kogmo-rtdb/rtdb/kogmo_rtdb_proc_obj_notify.h:108
#3 kogmo_rtdb_obj_writedata (db_h=0x603010, oid=10, data_p=data_p@entry=0x7fffffffc5c0)
at /home/haja/git/kogmo-rtdb/rtdb/kogmo_rtdb_objdata.c:170
#4 0x0000000000400ba1 in main (argc=<optimized out>, argv=<optimized out>)
at /home/haja/git/kogmo-rtdb/examples/kogmo_rtdb_writer.c:56
Backtrace from kogmo_rtdb_writer
:
(gdb) bt
#0 0x00007ffff779b756 in pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib/libpthread.so.0
#1 0x00007ffff7bbecdb in kogmo_rtdb_ipc_condvar_wait (condvar=0x7fffb70fc360, mutex=0x7fffb7107ea0, wakeup_ts=wakeup_ts@entry=0)
at /home/haja/git/kogmo-rtdb/rtdb/kogmo_rtdb_ipc_posix.c:642
#2 0x00007ffff7bc80ea in kogmo_rtdb_obj_wait_notify (wakeup_ts=0, objmeta_p=0x7fffb70d7340, db_h=0x603010)
at /home/haja/git/kogmo-rtdb/rtdb/kogmo_rtdb_proc_obj_notify.h:135
#3 _kogmo_rtdb_obj_readdata_waitnext_until (db_h=0x603010, oid=oid@entry=10, old_ts=1493804344518355669,
data_p=data_p@entry=0x7fffffffc5c0, size=size@entry=1048, wakeup_ts=wakeup_ts@entry=0, do_ptr=0)
at /home/haja/git/kogmo-rtdb/rtdb/kogmo_rtdb_objdata.c:865
#4 0x00007ffff7bc8f4e in kogmo_rtdb_obj_readdata_waitnext (db_h=<optimized out>, oid=oid@entry=10, old_ts=<optimized out>,
data_p=data_p@entry=0x7fffffffc5c0, size=size@entry=1048) at /home/haja/git/kogmo-rtdb/rtdb/kogmo_rtdb_objdata.c:917
#5 0x0000000000400a4d in main (argc=<optimized out>, argv=<optimized out>)
at /home/haja/git/kogmo-rtdb/examples/kogmo_rtdb_reader.c:45
It may have to do with this commit in the glibc code, where the condition variable was largely re-implemented.
I think (or hope) that it's more likely that the usage of the pthread mutexes and condition variables in kogmo_rtdb are not 100% correct, rather than it's a bug in glibc.
Greetings from the UniBw! Of course, if you help us fix this error, cold beverages are guaranteed ;)
Seems the current version only supports "local:" dbhost. Any ways to connect a network database?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.