Hello, We have v8.1.17, I've been programming since v7.8 on the same server in 2018. Two weeks ago I made some UDTs for a new process I'm running. The UDT was working fine on several machines. Last Monday, I found that a few tags were missing from the UDT which broke the logic. It wasn't a problem, I added them back. Today when I came in, those same three tags were missing after the restart. Its the strangest thing, I've never had a UDT change itself before on this system. These tags are very basic. Any idea why they keep dropping?
I'm losing currentTime, cycleLast and cycleSecondsCurrent. Nothing else goes missing but these three.
Have you looked through your wrapper log yet? I'd check around the time you added them back (to see if that threw errors) and shortly after restart (to see if they saved but didn't restore).
The three that were disappearing, I ended up naming them '_old' and writing in new ones with the same coded and name as the original. This morning, after a weekend power cycle, all the '_old' disappeared but the new ones persisted. Its as if the issue was copy and pasting in the three tags put them in a RAM state and were lost after a power cycle. Got to be some kind of bug in the version I'm running. Its all good now.
Hi ,same accident happened to my machine . Any advice how to retrieve deleted tags in the UDTs ? , what I did is some changes in CSS files then I increased the rams in ignition.conf file then restarted the gateway .
Interesting….just had a client call yesterday…two tag members disappeared from a UDT…8.1.38. And these tags were copies of two other tag members that persisted. Original two tag members named open_pb and close_pb, copies were open_pb2 and close_pb2. The pb2s disappeared.
I confirmed today and was able to repeat the issue. I’ve yet to examine the wrapper logs. For now, we re added the tags again, but not through copies, but new instances.
This feels like the changes are not getting written to the config.idb database. If someone runs into it again, if you can DM me the following, it would help to try and figure out what is going on:
Provide the Tag id for the member that is disappearing:
Right click the UDT Definition Member
Select View Tag Diagnostics
Take a screenshot of the full Tag Id (I can copy the value from that and we haven't fixed this in a way where copy/paste works)
Do the same for one of the members that never disappears
Provide a zipped copy of the <ignition install directory>/data/db/config.idb file
Provide the wrapper.log files
Provide the approximate timestamp the member tags were added back
I would like to add to this and managed to replicate the issue. I have a UDT Definition created that has a parent UDT defined. If i go and create a copy of a tag that comes from the parent UDT, rename it and reconfigure, when i save the tag, it accepts it without issues and propagates to all my instances. The moment I reboot the tag provider, the changes disappear. I tried checking the logs but they are not showing any errors.
If i create a new tag (instead of copying a tag from the parent UDT) and then copy this tag, i don’t have the issue. This is on 8.1.48
Thank you for providing these steps. I can replicate and have an issue logged. It looks like when the copy is made, it isn't getting the valueSource or tagType properties set, so the tags are considered invalid even though the definitions exist in the appropriate configuration locations.
This occurred again on an install today after a gateway restart from power outage. What should be the short term remediation steps? Can I export the tags and fix/add something and reimport them? This is causing lost production incidents. If I have to delete all the instances and create them 1 by 1, I can do so, but it’ll be a chore and of course render the app unusable during the process.
I sympathize with the situation you are in. While it could be fixed, being able to do so isn't trivial. I would recommend contacting support to see how we can help resolve the problem. There will not be a one size fits all solution as we have to keep in mind the following:
The changes have to be made to JSON that exists in a column in the SQLite DB
The valueSource property isn't something that we would be able to get right 100% of the time
Because of the number of times that this has occurred on your environment, there could be duplicated inactive members or invalid inactive members.
The safest way to do this would be to:
Make a copy of the config.idb
Make the changes via a dedicated SQLite tool by adding the valueSource and tagType properties, along with a custom property that would allow you to quickly search for the affected tags via the Tag Report Tool
Load the backup on a test environment
Verify and make changes as needed to the fixed tags
Export the tags from the test environment when confirmed they are correct and after any changes are made
Import the tags into the production environment
Something that might be worth setting up (at least until we get this fixed) is a script that exports your UDT definitions to disk periodically via system.tag.exportTags. Exports are made from what is currently in memory and it would allow you to recover quickly should something like this happen again but it doesn't fix the current problem you are experiencing.
I just managed to use your method to duplicate. If you have "working' udts, export them, and then import them overwriting the existing. Seemed to test out ok on my system. Fixes whatever the glitch is.