Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Saving large model results in corrupted XMI file #470

Open
eposse opened this issue Aug 3, 2023 · 3 comments
Open

Saving large model results in corrupted XMI file #470

eposse opened this issue Aug 3, 2023 · 3 comments
Labels
bug Something isn't working

Comments

@eposse
Copy link
Collaborator

eposse commented Aug 3, 2023

Issue and tracking information

Developer's time Estimated effort to fix (hours):

Developer's Actual time spent on fix (hours)

Issue reporter to provide a detailed description of the issue in the space below

(This was first mentioned in Issue #466).

"[...]we see a few other segfault errors as well as a problem that has been plaguing our team for years even back in RSA. This bug is one where the model saving goes wrong and some portion of the model is saved to UML twice giving invalid XML. I have added an example of this corrupted model in the other zip file.

SPDM_Large_corrupted.zip
-This contains the corrupted UML. Notice that the models XML ends with a </xmi:XMI> tag, but then contains what appears to be a trailing portion of the original model after it. If you delete all contents after the first ending </xmi:XMI> tag, the model is valid again."

@eposse eposse added the bug Something isn't working label Aug 3, 2023
@eposse
Copy link
Collaborator Author

eposse commented Aug 3, 2023

While I see the corruption in the model that you provided, I haven't been able to reproduce it myself, with neither your large models, nor with other smaller models.

Can you perhaps give me more details about the steps that you do to get the corrupted model?

  • Do you change more than one element before saving?
  • Which elements are you changing and what values are you giving them?
  • How many changes do you make before seeing the corrupted file?
  • Does it happen after one save or after multiple saves?
  • Does it happen after reloading, or switching between models?
  • Do you see any exceptions in the Error Log when this happens?
  • Are there other models in the workspace?
  • Do you edit other models in the same session?
  • Do you have any plugins that are using the same ResourceSet?

@emammoser
Copy link
Collaborator

For a little background, this issue is one that we have been seeing for a long time but it is fairly rare unless the model is very large. We only develop on Linux VMs, which I believe is different from your development environment. The filesystem is mounted as just XFS, not NFS or anything like that.

I just reproduced this on my end with the following details. Only one project in the workspace with one model, the large SignalProcessingDataModel example. This was the only model or file open in eclipse. It took me two saves to reproduce this issue this time, however, I believe the issue happens psuedo-randomly and the number of saves isn't really relevant here. For both saves, the only thing I did was change a single message field type to a CX primitive like CXChar and CXDouble. I don't know what you mean with your last question. My guess is no since our plugins do not really interact with the modeling system at all.

I will attach the logs in another comment.

@emammoser
Copy link
Collaborator

Screenshot from 2023-08-04 10-56-55
Corruption.log

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants