Hello,

thank you for reporting this error. The bug is related to memory-based storage of bundles only.
Please apply the attached patch to ibrcommon library with the following command and try again.

$ cat invalid-path-check.patch | patch -p0

Best Regards,
Johannes Morgenroth


Am 01.11.2010 08:15, schrieb ¿À½ÂÈÆ:

Hello,

 

I have installed ibr-dtn-0.4.2 on two laptops.

I just want two dtn-nodes exchange bundles when they are connected to the same network.

The setting info is following :

- tcp convergence layger

- epidemic routing

 

Just one difference between them is that one of them has two network interfaces.

But, I don't think it makes any influence on the result.

 

The following is the log messages I've got when running two nodes.

 

<The first node>=========================================================

st@stvaio:~/IBR-DTN/ibrdtnd-0.4.2/etc$ dtnd -c tcp.epidemic.ibrdtn

Mon Nov  1 15:22:52 2010 INFO: IBR-DTN daemon 0.4.2 (build 28725M)

Mon Nov  1 15:22:52 2010 INFO: Configuration: tcp.epidemic.ibrdtn

Mon Nov  1 15:22:52 2010 INFO: Local node name: dtn://SONY

Mon Nov  1 15:22:52 2010 INFO: DiscoveryAgent: broadcast mode 255.255.255.255:4551

Mon Nov  1 15:22:52 2010 INFO: DiscoveryAgent: bind to interface wlan0

Mon Nov  1 15:22:52 2010 INFO: Using epidemic routing extensions

Mon Nov  1 15:22:52 2010 INFO: Initializing epidemic routing module for node dtn://SONY

Mon Nov  1 15:22:52 2010 INFO: Forwarding of bundles enabled.

Mon Nov  1 15:22:52 2010 INFO: TCP ConvergenceLayer added on 192.168.0.197:4556

Mon Nov  1 15:22:52 2010 INFO: Logging module initialized. mode = 0, interval = 200

Mon Nov  1 15:22:52 2010 NOTICE: ConnectionEvent: connection up dtn://IBM

Mon Nov  1 15:22:52 2010 NOTICE: NodeEvent: Node dtn://IBM available over TCP

Mon Nov  1 15:22:52 2010 NOTICE: BundleReceivedEvent: Bundle received [341907772.3] dtn://IBM -> dtn:epidemic-routing

Mon Nov  1 15:22:52 2010 NOTICE: BundleEvent: bundle [341907772.3] dtn://IBM stored

Mon Nov  1 15:22:52 2010 NOTICE: QueueBundleEvent: New bundle queued [341907772.3] dtn://IBM

Mon Nov  1 15:22:52 2010 NOTICE: BundleEvent: bundle [341907772.3] dtn://IBM received

terminate called after throwing an instance of 'std::out_of_range'

  what():  basic_string::substr

Aborted

======================================================================

 

<The second node>=========================================================

osh93@ubuntu:~/IBR-DTN/ibrdtnd-0.4.2/etc$ dtnd -c tcp.epidemic.ibrdtn

Mon Nov  1 15:22:50 2010 INFO: IBR-DTN daemon 0.4.2 (build 28725M)

Mon Nov  1 15:22:50 2010 INFO: Configuration: tcp.epidemic.ibrdtn

Mon Nov  1 15:22:50 2010 INFO: Local node name: dtn://IBM

Mon Nov  1 15:22:50 2010 INFO: DiscoveryAgent: broadcast mode 255.255.255.255:4551

Mon Nov  1 15:22:50 2010 INFO: DiscoveryAgent: bind to interface eth0

Mon Nov  1 15:22:50 2010 INFO: DiscoveryAgent: bind to interface eth1

Mon Nov  1 15:22:50 2010 INFO: Using epidemic routing extensions

Mon Nov  1 15:22:50 2010 INFO: Initializing epidemic routing module for node dtn://IBM

Mon Nov  1 15:22:50 2010 INFO: Forwarding of bundles enabled.

Mon Nov  1 15:22:50 2010 INFO: TCP ConvergenceLayer added on 129.254.231.147:4556

Mon Nov  1 15:22:50 2010 INFO: TCP ConvergenceLayer added on 192.168.0.173:4556

Mon Nov  1 15:22:50 2010 INFO: Logging module initialized. mode = 0, interval = 200

Timestamp 341907771; CurNeighbors 0; RecvBundles 0; SentBundles 0; StoredBundles 0;

Mon Nov  1 15:22:52 2010 NOTICE: NodeEvent: Node dtn://SONY available over TCP

Mon Nov  1 15:22:52 2010 NOTICE: ConnectionEvent: connection setup dtn://SONY

Mon Nov  1 15:22:52 2010 NOTICE: ConnectionEvent: connection up dtn://SONY

Mon Nov  1 15:22:52 2010 NOTICE: BundleReceivedEvent: Bundle received [341907772.3] dtn://SONY -> dtn:epidemic-routing

Mon Nov  1 15:22:52 2010 NOTICE: BundleEvent: bundle [341907772.3] dtn://SONY stored

Mon Nov  1 15:22:52 2010 NOTICE: QueueBundleEvent: New bundle queued [341907772.3] dtn://SONY

Mon Nov  1 15:22:52 2010 NOTICE: BundleEvent: bundle [341907772.3] dtn://SONY received

terminate called after throwing an instance of 'std::out_of_range'

  what():  basic_string::substr

Aborted

======================================================================

 

I think, when they exchange the epidemic routing messages the errors occur.

Doesn't epidemic routing work with TCP convergence layer?

Do we need other special setting with epidemic routing?

Do you have any idea about this error?

 

Thanks in advance.

 

Best Regards,

Seung-Hun Oh



-- 
Johannes Morgenroth     Institut fuer Betriebssysteme und Rechnerverbund
Tel.: +49-531-391-3249                           Muehlenpfordtstrasse 23
Fax.: +49-531-391-5936      TU Braunschweig         D-38106 Braunschweig