Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0000581Taste[All Projects] Buildsupportpublic2017-02-22 08:352017-07-13 12:17
Reportercavada@fbk.eu 
Assigned Tomaxime 
PrioritynormalSeverityminorReproducibilityalways
StatusclosedResolutionfixed 
PlatformOSOS Version
Summary0000581:

Multiple Fan-in not handled with bindings located in different partitions

Description

Function DeclareProcessFeatures in buildsupport/c/vertical_transformation.c does not generate all needed features in same cases.

I don't know if this is a conceptual problem, or if the problem is due to missing information in the AST.

Structure Interface has one field distant_fv which is used to check if a given Interface is connected to a block bound to a different partition. If the connection crosses the single partition's bound, feature are declared in file process.aadl.
However, a PI can be connected to several RIs, so the field should be a set instead. Alternatively a single multiple fan-in should be expanded to several Interfaces, as many as the cardinality of the fan-in to contain all information.

This leads to a bug in the generated process.aadl. For example, if a model has block1 (in partition1) having a PI, block2 (in partition1) with RI connected to block1.PI, and also block3 (in partition2) with RI connected to block1.PI, it is the chance to decide if the compilation works or if it fails. Chance depends on which of block2 or block3 the compiler attaches to field block1.PI.distant_fv. If by chance block1.PI.distant_fv = "block3" the compilation is successful as block1.PI is considered a feature to be declared in process.aadl. If block1.PI.distant_fv = "block2" the feature will not be declared ion process.aadl, and the compilation will fail, as block2 is local wrt block1.

Steps To Reproduce

To reproduce, see attached model. It contains two DeploymentViews, one triggering the problem and the other not triggering it. The difference between them is the block (block2 or block3) which is declared to be local to block1.

  1. Copy NO-BUG_DeploymentView.aadl to DeploymentView.aadl
  2. Compile (it succeeds)
  3. Clean binary.c
  4. Copy BUG_DeploymentView.aadl to DeploymentView.aadl
  5. Compile (it fails as there is a missing declaration of a feature in process.aadl)
TagsNo tags attached.
Attached Filestgz file icon issue-581.tgz [^] (25,200 bytes) 2017-02-22 08:51

- Relationships

-  Notes
(0002768)
maxime (administrator)
2017-02-23 13:49

This is fixed now. Indeed there was a problem with distant_fv.
Thanks for reporting. Please confirm the fix.

(0002943)
maxime (administrator)
2017-07-13 12:17

Closing


- Issue History
Date Modified Username Field Change
2017-02-22 08:35 cavada@fbk.eu New Issue
2017-02-22 08:35 cavada@fbk.eu Status

new => assigned

2017-02-22 08:35 cavada@fbk.eu Assigned To

=> maxime

2017-02-22 08:51 cavada@fbk.eu File Added: issue-581.tgz
2017-02-23 13:49 maxime Note Added: 0002768
2017-07-13 07:32 maxime Status

assigned => resolved

2017-07-13 07:32 maxime Resolution

open => fixed

2017-07-13 12:17 maxime Note Added: 0002943
2017-07-13 12:17 maxime Status

resolved => closed



Copyright © 2000 - 2011 MantisBT Group
Powered by Mantis Bugtracker