Created
February 4, 2015 22:01
-
-
Save fischermario/98ff4be900cb141bdd8a to your computer and use it in GitHub Desktop.
Kodo multicast crash
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#! /usr/bin/env python | |
# encoding: utf-8 | |
# Copyright Steinwurf ApS 2011-2013. | |
# Distributed under the "STEINWURF RESEARCH LICENSE 1.0". | |
# See accompanying file LICENSE.rst or | |
# http://www.steinwurf.com/licensing | |
import kodo | |
import socket | |
import struct | |
import time | |
import hashlib | |
MCAST_GRP = '224.1.1.1' | |
MCAST_PORT = 5007 | |
def main(): | |
# Simple Multicast Receiver | |
# Set the number of symbols (i.e. the generation size in RLNC | |
# terminology) and the size of a symbol in bytes | |
symbols = 42 #64 | |
symbol_size = 64 #1400 | |
file_size = 2023 | |
# In the following we will make an decoder factory. | |
# The factories are used to build actual decoder | |
decoder_factory = kodo.FullVectorDecoderFactoryBinary8( | |
max_symbols=symbols, | |
max_symbol_size=symbol_size) | |
decoder = decoder_factory.build() | |
sock = socket.socket( | |
family=socket.AF_INET, | |
type=socket.SOCK_DGRAM, | |
proto=socket.IPPROTO_UDP) | |
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) | |
sock.bind(('', MCAST_PORT)) | |
mreq = struct.pack("4sl", socket.inet_aton(MCAST_GRP), socket.INADDR_ANY) | |
sock.setsockopt(socket.IPPROTO_IP, socket.IP_ADD_MEMBERSHIP, mreq) | |
print("Processing") | |
while not decoder.is_complete(): | |
time.sleep(0.2) | |
packet = sock.recv(1024) | |
print("Packet received! MD5: " + str(hashlib.md5(packet).hexdigest())) | |
decoder.decode(packet) | |
print("rank: {}/{}".format(decoder.rank(), decoder.symbols())) | |
# Write data to file and truncate the data | |
f = open("output_file.txt", 'wb') | |
tmp = decoder.copy_symbols() | |
f.write(tmp[:file_size]) | |
f.close() | |
print("Processing finished") | |
if __name__ == "__main__": | |
main() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#! /usr/bin/env python | |
# encoding: utf-8 | |
# Copyright Steinwurf ApS 2011-2013. | |
# Distributed under the "STEINWURF RESEARCH LICENSE 1.0". | |
# See accompanying file LICENSE.rst or | |
# http://www.steinwurf.com/licensing | |
import kodo | |
import os | |
import socket | |
import sys | |
import time | |
import hashlib | |
MCAST_GRP = '224.1.1.1' | |
MCAST_PORT = 5007 | |
def main(): | |
# Simple Multicast Sender | |
# Set the number of symbols (i.e. the generation size in RLNC | |
# terminology) and the size of a symbol in bytes | |
max_symbols = 42 #64 | |
max_symbol_size = 64 #1400 | |
# Get directory of this file | |
directory = os.path.dirname(os.path.realpath(__file__)) | |
# The name of the file to use for the test | |
filename = "multicast_sender_example.py" | |
filesize = os.path.getsize(os.path.join(directory, filename)) | |
print "File: " + os.path.join(directory, filename) | |
print "Size: " + str(filesize) | |
# In the following we will make an encoder factory. | |
# The factories are used to build actual encoder | |
encoder_factory = kodo.FullVectorEncoderFactoryBinary8( | |
max_symbols=max_symbols, | |
max_symbol_size=max_symbol_size) | |
encoder = encoder_factory.build() | |
sock = socket.socket( | |
family=socket.AF_INET, | |
type=socket.SOCK_DGRAM, | |
proto=socket.IPPROTO_UDP) | |
sock.setsockopt(socket.IPPROTO_IP, socket.IP_MULTICAST_TTL, 2) | |
# Get the data to encode. | |
f = open(os.path.join(directory, filename), 'rb') | |
data_in = f.read() | |
f.close() | |
# Assign the data buffer to the encoder so that we can | |
# produce encoded symbols | |
encoder.set_symbols(data_in) | |
address = (MCAST_GRP, MCAST_PORT) | |
print("Processing") | |
while True: | |
time.sleep(0.2) | |
# Generate an encoded packet | |
packet = encoder.encode() | |
print("Packet encoded! MD5: " + str(hashlib.md5(packet).hexdigest())) | |
# Send the packet. | |
sock.sendto(packet, address) | |
print("Processing finished") | |
if __name__ == "__main__": | |
main() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Processing | |
Packet received! MD5: 2c2777a4669b1eff4d6aa6da3c9747b5 | |
rank: 1/42 | |
Packet received! MD5: 4ed8f7ca2550cbd37144c9fb53459335 | |
rank: 2/42 | |
Packet received! MD5: ae11e7155bef250e49ee59178918fe0f | |
rank: 3/42 | |
Packet received! MD5: 5c8736734789ab130abbf812444c97d5 | |
rank: 4/42 | |
Packet received! MD5: 2e43cc6c907383d22465122e3c19ba70 | |
rank: 5/42 | |
Packet received! MD5: 5fd04ce241e3a00ee6e624346120ac23 | |
rank: 6/42 | |
Packet received! MD5: 170d7e0863ce0452a9e01ea70d56d152 | |
rank: 7/42 | |
Packet received! MD5: 56c46e76732f8176727201c03b379eb7 | |
rank: 8/42 | |
Packet received! MD5: 49918d139472e448da10ddfbd10360cc | |
rank: 9/42 | |
Packet received! MD5: 0729623ec1b22a4288922311b3642abf | |
rank: 10/42 | |
Packet received! MD5: 2f30a59f8f7c8eb51a194bcdd11c75be | |
rank: 11/42 | |
Packet received! MD5: b06a3c643f1bbefd449e0bece76ab06c | |
rank: 12/42 | |
Packet received! MD5: 8326ebf731d656eede6b8fd663209538 | |
rank: 13/42 | |
Packet received! MD5: 1a32aa4fa9964a0a56b7c6d961817c03 | |
rank: 14/42 | |
Packet received! MD5: 1e98b2943d5564e8f7cd8be7a8d782be | |
rank: 15/42 | |
Packet received! MD5: aaba46909e393b42222ba5e0294e1d90 | |
rank: 16/42 | |
Packet received! MD5: 95168727e4c0b5c505cea0a444f6baf9 | |
rank: 17/42 | |
Packet received! MD5: 34e45ad81b71109bd43c43ae4fb92747 | |
rank: 18/42 | |
Packet received! MD5: 938347a8d122e0b9b18a2bf158f5aec5 | |
rank: 19/42 | |
Packet received! MD5: 7d1d490734ec9c48801f8b9eee11ceee | |
rank: 20/42 | |
Packet received! MD5: caefe8155d5ee98a4f649b13c2dd90c8 | |
rank: 21/42 | |
Packet received! MD5: fe92f694078b5eb2a0f6344e76199792 | |
rank: 22/42 | |
Packet received! MD5: 3b48c58cadf8d1895f1dc8aa63c1eab4 | |
rank: 23/42 | |
Packet received! MD5: 50cd10db25bf2005d7d79c273579ca8e | |
rank: 24/42 | |
Packet received! MD5: 8e6f21a6c90d3347b5e43676637d6524 | |
rank: 25/42 | |
Packet received! MD5: e9364b965b5d9b7ccabcecfb406d81c8 | |
rank: 26/42 | |
Packet received! MD5: d3cb66905e04ca02543498629278ef82 | |
rank: 27/42 | |
Packet received! MD5: 3d0fda5abe775d586449810d22aadbe8 | |
rank: 28/42 | |
Packet received! MD5: 2fc2473c1e71662af699a124bd36bd21 | |
rank: 29/42 | |
Packet received! MD5: a039549789f4487188263263a5c336e3 | |
rank: 30/42 | |
Packet received! MD5: 096881baa44abfcad16743e0cbcc85b0 | |
rank: 31/42 | |
Packet received! MD5: eab34967699815cb08868673f2dce778 | |
rank: 32/42 | |
Packet received! MD5: 475eb794a020fee0339481bbd2cab8b6 | |
rank: 32/42 | |
Packet received! MD5: 28e76a88baea186dea4f41e74880df4b | |
rank: 32/42 | |
Packet received! MD5: 11354ff0fba96663a22f39a39a84eb6a | |
rank: 32/42 | |
Packet received! MD5: 64bb9f8132ead22312bef3ea8a3f8a37 | |
rank: 32/42 | |
Packet received! MD5: 63f39bc707822fe21de6b3f995fcde52 | |
rank: 32/42 | |
Packet received! MD5: 5ca9fdcd99c960c6338792127d66761a | |
rank: 32/42 | |
Packet received! MD5: 26e9894805a5fd18a39f5db881cc0ed3 | |
rank: 32/42 | |
Packet received! MD5: 741e87c2cb5bdf3c70a8029a38788fb5 | |
rank: 32/42 | |
Packet received! MD5: adbfdd9ed22c62cd3f00d51eefaf4435 | |
rank: 32/42 | |
Packet received! MD5: 2d50bd448a31a3bfe1ed333b58d1a2c2 | |
rank: 32/42 | |
Packet received! MD5: 585546459556d66cadab7e453939fed8 | |
rank: 32/42 | |
Packet received! MD5: 8dc2fdbd030e964c937daa77535d251f | |
rank: 32/42 | |
Packet received! MD5: a276d110ece18031e5b824fe29531e5d | |
rank: 32/42 | |
Packet received! MD5: 9c2956b80f2d8fccc6e405a487fae571 | |
rank: 32/42 | |
Packet received! MD5: d056c61dc0a4667aa6ea04a280e524ea | |
rank: 32/42 | |
Packet received! MD5: 51c2f7b354f2ff3176f085068ffdc536 | |
rank: 32/42 | |
Packet received! MD5: 41d3b10e1ce524062edd2c0015b92c9d | |
rank: 32/42 | |
Packet received! MD5: 94b4b0bc51fdf28e7e6b3894a43050a0 | |
rank: 32/42 | |
Packet received! MD5: 4330137c3672e5cd6f5b490f3cd8545f | |
rank: 32/42 | |
Packet received! MD5: 82b72284ca8df98d317b77c79e247a06 | |
rank: 32/42 | |
Packet received! MD5: e8d8d84e7ac23cb48dce4207e62e35b1 | |
rank: 32/42 | |
Packet received! MD5: 59ed101d5d55ff1498fe784d53107d38 | |
rank: 32/42 | |
Packet received! MD5: 14cf30898a9f0a1dc6178d4b32564de6 | |
rank: 32/42 | |
Packet received! MD5: ceb8cf06023e4764f43f688cc54ad021 | |
python: /tmp/pip_build_root/kodo/kodo-python/bundle_dependencies/kodo-879b21/22.1.0/src/kodo/bidirectional_linear_block_decoder.hpp:96: void kodo::bidirectional_linear_block_decoder<DirectionPolicy, SuperCoder>::decode_symbol(uint8_t*, uint32_t) [with DirectionPolicy = kodo::forward_linear_block_decoder_policy; SuperCoder = kodo::rank_info<kodo::symbol_decoding_status_counter<kodo::symbol_decoding_status_tracker<kodo::coefficient_value_access<kodo::coefficient_storage<kodo::coefficient_info<kodo::trace_set_symbol_storage<kodo::disable_trace, kodo::deep_symbol_storage<kodo::storage_bytes_used<kodo::storage_block_length<kodo::storage_block_size<kodo::finite_field_math<fifi::full_table<fifi::binary8>, kodo::finite_field_info<fifi::binary8, kodo::trace_layer<kodo::disable_trace, kodo::final_layer> > > > > > > > > > > > > >; uint8_t = unsigned char; uint32_t = unsigned int]: Assertion `index < SuperCoder::symbols()' failed. | |
Aborted (core dumped) | |
------------------ | |
(program exited with code: 134) | |
Press return to continue |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File: /home/min/Schreibtisch/multicast_sender_example.py | |
Size: 2023 | |
Processing | |
Packet encoded! MD5: 29e853fa128c1d6472b171ac1a611658 | |
Packet encoded! MD5: 98a6e586663dda343f039551dfbb069c | |
Packet encoded! MD5: cc97a0f0ad6c1741fd59c6b485d54a5a | |
Packet encoded! MD5: c731ed8a93aa444ad3f6de88ae0353d2 | |
-- cut -- | |
Packet encoded! MD5: 2c2777a4669b1eff4d6aa6da3c9747b5 | |
Packet encoded! MD5: 4ed8f7ca2550cbd37144c9fb53459335 | |
Packet encoded! MD5: ae11e7155bef250e49ee59178918fe0f | |
Packet encoded! MD5: 5c8736734789ab130abbf812444c97d5 | |
Packet encoded! MD5: 2e43cc6c907383d22465122e3c19ba70 | |
Packet encoded! MD5: 5fd04ce241e3a00ee6e624346120ac23 | |
Packet encoded! MD5: 170d7e0863ce0452a9e01ea70d56d152 | |
Packet encoded! MD5: 56c46e76732f8176727201c03b379eb7 | |
Packet encoded! MD5: 49918d139472e448da10ddfbd10360cc | |
Packet encoded! MD5: 0729623ec1b22a4288922311b3642abf | |
Packet encoded! MD5: 2f30a59f8f7c8eb51a194bcdd11c75be | |
Packet encoded! MD5: b06a3c643f1bbefd449e0bece76ab06c | |
Packet encoded! MD5: 8326ebf731d656eede6b8fd663209538 | |
Packet encoded! MD5: 1a32aa4fa9964a0a56b7c6d961817c03 | |
Packet encoded! MD5: 1e98b2943d5564e8f7cd8be7a8d782be | |
Packet encoded! MD5: aaba46909e393b42222ba5e0294e1d90 | |
Packet encoded! MD5: 95168727e4c0b5c505cea0a444f6baf9 | |
Packet encoded! MD5: 34e45ad81b71109bd43c43ae4fb92747 | |
Packet encoded! MD5: 938347a8d122e0b9b18a2bf158f5aec5 | |
Packet encoded! MD5: bad45a819fdd103cb6bae38b2307f516 | |
Packet encoded! MD5: 7d1d490734ec9c48801f8b9eee11ceee | |
Packet encoded! MD5: caefe8155d5ee98a4f649b13c2dd90c8 | |
Packet encoded! MD5: fe92f694078b5eb2a0f6344e76199792 | |
Packet encoded! MD5: 3b48c58cadf8d1895f1dc8aa63c1eab4 | |
Packet encoded! MD5: 50cd10db25bf2005d7d79c273579ca8e | |
Packet encoded! MD5: 8e6f21a6c90d3347b5e43676637d6524 | |
Packet encoded! MD5: e9364b965b5d9b7ccabcecfb406d81c8 | |
Packet encoded! MD5: 9417fa4eb09fcffba8027595068db4aa | |
Packet encoded! MD5: d3cb66905e04ca02543498629278ef82 | |
Packet encoded! MD5: 3d0fda5abe775d586449810d22aadbe8 | |
Packet encoded! MD5: 2fc2473c1e71662af699a124bd36bd21 | |
Packet encoded! MD5: a039549789f4487188263263a5c336e3 | |
Packet encoded! MD5: 096881baa44abfcad16743e0cbcc85b0 | |
Packet encoded! MD5: eab34967699815cb08868673f2dce778 | |
Packet encoded! MD5: 475eb794a020fee0339481bbd2cab8b6 | |
Packet encoded! MD5: 28e76a88baea186dea4f41e74880df4b | |
Packet encoded! MD5: b8b630f902e6a09567122fac6a5e1db2 | |
Packet encoded! MD5: 11354ff0fba96663a22f39a39a84eb6a | |
Packet encoded! MD5: 95dc049b98ce4fa79408114a09fe459e | |
Packet encoded! MD5: 64bb9f8132ead22312bef3ea8a3f8a37 | |
Packet encoded! MD5: 63f39bc707822fe21de6b3f995fcde52 | |
Packet encoded! MD5: 5ca9fdcd99c960c6338792127d66761a | |
Packet encoded! MD5: 26e9894805a5fd18a39f5db881cc0ed3 | |
Packet encoded! MD5: 741e87c2cb5bdf3c70a8029a38788fb5 | |
Packet encoded! MD5: adbfdd9ed22c62cd3f00d51eefaf4435 | |
Packet encoded! MD5: 2d50bd448a31a3bfe1ed333b58d1a2c2 | |
Packet encoded! MD5: 585546459556d66cadab7e453939fed8 | |
Packet encoded! MD5: 8dc2fdbd030e964c937daa77535d251f | |
Packet encoded! MD5: a276d110ece18031e5b824fe29531e5d | |
Packet encoded! MD5: 9c2956b80f2d8fccc6e405a487fae571 | |
Packet encoded! MD5: 271cee5bda17f8264e28a8875b41f276 | |
Packet encoded! MD5: d056c61dc0a4667aa6ea04a280e524ea | |
Packet encoded! MD5: 51c2f7b354f2ff3176f085068ffdc536 | |
Packet encoded! MD5: 41d3b10e1ce524062edd2c0015b92c9d | |
Packet encoded! MD5: 1bb1812ac8ff07a73d956bcd9770372c | |
Packet encoded! MD5: 94b4b0bc51fdf28e7e6b3894a43050a0 | |
Packet encoded! MD5: 4330137c3672e5cd6f5b490f3cd8545f | |
Packet encoded! MD5: 82b72284ca8df98d317b77c79e247a06 | |
Packet encoded! MD5: e8d8d84e7ac23cb48dce4207e62e35b1 | |
Packet encoded! MD5: 59ed101d5d55ff1498fe784d53107d38 | |
Packet encoded! MD5: 14cf30898a9f0a1dc6178d4b32564de6 | |
Packet encoded! MD5: ceb8cf06023e4764f43f688cc54ad021 | |
Packet encoded! MD5: 57d41106d044b40d8705e87da614248e | |
Packet encoded! MD5: 6a7700a23d47684842833c4477b78dcb | |
Packet encoded! MD5: 06f11836ecdf31bd06b80af44b2f3427 | |
Packet encoded! MD5: 9c739ad4173a7c27411cff13390d6bcc | |
Packet encoded! MD5: cf7da5c0ceb2ff64073cb3f367cc646b | |
Packet encoded! MD5: 987e4b55621f3902151f6330c4ee9934 | |
Packet encoded! MD5: a71777c83259176947e4a8c199629e3d | |
Packet encoded! MD5: 6107888549aef7b1e4d93275c8ea8228 | |
Packet encoded! MD5: f15444539759a7df65f2d8836bceb42e | |
Packet encoded! MD5: c8c12b5128cdba51fe31b2e2022f363d | |
Packet encoded! MD5: 6118d282b62b4837343917adc337ac87 | |
Packet encoded! MD5: 58b051dadd195f9f309a77b915076749 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment