Coder Social home page Coder Social logo

atlesn / rrr Goto Github PK

View Code? Open in Web Editor NEW
4.0 4.0 3.0 11.28 MB

RRR (Read Route Record) is a general purpose acquirement, transmission and processing daemon supporting HTTP, MQTT, TCP, UDP and other I/O devices. RRR has a variety of different modules which can be chained together to retrieve, transmit, modify and save messages.

License: Other

Makefile 0.46% M4 1.76% C 86.25% Shell 1.60% Gnuplot 0.06% Python 0.61% Roff 4.07% Perl 0.81% XS 0.08% GDB 0.01% HTML 0.07% JavaScript 0.36% C++ 3.60% Lua 0.28%
http ip mqtt perl python rrr tcp tls udp websocket

rrr's People

Contributors

atlesn avatar lbs-transfer avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

rrr's Issues

pthread mutex use error: Assertion failed

The test suite gave the following error (has happened once):
test: ../nptl/pthread_mutex_lock.c:81: __pthread_mutex_lock: Assertion `mutex->__data.__owner == 0' failed.

Some mutex-stuff is badly implemented, possibly a mutex is being unlocked by another thread than the locker.

Add WebSocket support to httpserver

Server should support HTTP->WebSocket upgrades with persistent connections.

  • Basic negotiation handled by httpserver
  • Higher level messages sent out of httpserver for processing in other modules like Perl
  • Higher level replies from other modules

RPM build fails (Fedora)

libtool: error: error: cannot install 'mysql.la' to a directory not ending in /usr/local/lib/rrr

Correctly destroy all FIFO buffer mutexes

Currently most modules does not properly destroy their FIFO buffers because the mutex is used by multiple threads (it's the mutex which is problematic to destroy). Memory isn't leaked, but pthread_mutex_destroy is not called. Figure out how to solve this.

Rewrite python module

python branch. Python module is defunct with new fork system. Code must be re-organized.

  • All python3 code must reside within the process/source forks, nothing in main thread
  • Reduce python3 socket class to a wrapper which puts messages into mmap channel

Write HTTP client and server modules

Figure out what features of an HTTP server or client which can be useful.

It might be useful to integrate RRR arrays and send/receive POST and GET data.

sytemd integration and multi-config

systemd branch. Some structure in the build system is already made but is not complete. Files in misc/systemd . RRR must be able to start many config files from one process. This now works, but there are some issues with thread shutdown.

FIFO buffer design stress test and disable consistency checks

The FIFO buffer currently goes through some consistency checking to detect errors. This is done every call and is slowing things down. The buffer needs to be stress tested in some way and the consistency checks disabled, although there hasn't been any problems with it in a while.

Create MQTT database storage engine

Currently all session states are stored in the RAM engine. The session system is already designed to have multiple different storage engines. A database engine, e.g. MySQL, will allow for client state to be preserved across restarts.

Extend test suite to cover more code

Use the code coverage scripts to detect code not included in the test suite, and extend the tests. Possibly have more "message channels" in the test to avoid complicating what's already there even further.

shmget: No space left on device

Nov 11 00:57:09 label-print-01 rrr[13636]: Error from shmget in __rrr_mmap_channel_allocate: No space left on device
Nov 11 00:57:09 label-print-01 rrr[13636]: Could not allocate memory in rrr_mmap_channel_write
Nov 11 00:57:09 label-print-01 rrr[13636]: Could not send address message on mmap channel in __rrr_cmodule_send_message name
Nov 11 00:57:09 label-print-01 rrr[13636]: Error while sending message in rrr_cmodule_send_to_fork
------ Shared Memory Limits --------
max number of segments = 4096
max seg size (kbytes) = 18014398509465599
max total shared memory (kbytes) = 18014398509481980
min seg size (bytes) = 1

All modules restarted correctly afterwards.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.