OMNeT++/OMNEST Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0000193OMNeT++simulation kernelpublic2010-07-29 11:392010-07-29 11:48
Reporterandras 
Assigned Toandras 
PrioritynormalSeverityminorReproducibilityalways
StatusresolvedResolutionfixed 
PlatformOSOS Version
Product Version4.1 
Target Version4.2Fixed in Version4.2 
Summary0000193: Parallel simulation issues
DescriptionThere are several issues with parallel simulation:

1. inout gates are not supported on partition boundaries: for the input half, the system should create a proxy gate, but a normal gate is created instead. Workaround: use separate input and output gates.

2. scalar modules are not handled correctly in the partitioning description (they are erroneously handled as element [0] in a module vector). Workaround: use module vectors

3. scalar gates are not handled correctly partition boundaries. Workaround: use gate vectors

Reported by Philip C. Roth
TagsNo tags attached.
Attached Filespatch file icon issue1.patch [^] (1,575 bytes) 2010-07-29 11:47 [Show Content]
patch file icon issue2.patch [^] (610 bytes) 2010-07-29 11:47 [Show Content]
patch file icon issue3.patch [^] (1,444 bytes) 2010-07-29 11:48 [Show Content]

- Relationships

-  Notes
(0000331)
andras (administrator)
2010-07-29 11:43

Causes of the bugs:

1. cModule::addGate() and cModule::setGateSize() called createGateObject() with type==cGate::INOUT. Only INPUT and OUTPUT are allowed values for this function.

2. cEnvir::isModuleLocal() expects index==-1 for scalar modules, and cModuleType::create() invokes it with 0.

3. The code in cParsimPartition::connectRemoteGates() in cparsimpartition.cc is the problem. For a scalar gate, the marshalling side sends a zero for gateIndex because cGate::getIndex() returns zero for a scalar gate. The unmarshalling side sees the zero and passes it into cModule::gate( name, index ) which throws the exception because the gate is not a vector. Since that function expects -1 for the gateIndex of a scalar gate, a proposed fix is to check on the sending side whether a gate is scalar or vector, and send -1 for gateIndex if it is a scalar gate
(0000332)
andras (administrator)
2010-07-29 11:48

see attached patches.

- Issue History
Date Modified Username Field Change
2010-07-29 11:39 andras New Issue
2010-07-29 11:39 andras Description Updated
2010-07-29 11:43 andras Note Added: 0000331
2010-07-29 11:47 andras File Added: issue1.patch
2010-07-29 11:47 andras File Added: issue2.patch
2010-07-29 11:48 andras File Added: issue3.patch
2010-07-29 11:48 andras Note Added: 0000332
2010-07-29 11:48 andras Status new => resolved
2010-07-29 11:48 andras Fixed in Version => 4.2
2010-07-29 11:48 andras Resolution open => fixed
2010-07-29 11:48 andras Assigned To => andras


Copyright © 2000 - 2019 MantisBT Team
Powered by Mantis Bugtracker