Startup Issue with Application Deployment - AMP Recovery Mode

System Information

Field Value
Operating System Linux - Ubuntu 24.04.1 on x86_64
Product AMP ‘Phobos’ v2.6.0.4 (Mainline)
Virtualization QEMU_KVM
Application Application Deployment
Module ADSModule
Running in Container No
Current State Indeterminate

Problem Description

Issue

For some reason, the AMP is set to Recovery mode. When i do restart the Virtual Machine. It shows up like this image: https://i.imgur.com/ramRGZ5.png

I just ran a repair and started it and then it seems to work as usual.
But this is not something i should have to deal with, i feel bad for those thats not comfortable with ssh…

When i ssh into the machine and use the appropriate user (amp) and run:
ampinstmgr -l

Output:
amp@ampvm:~/.ampdata/instances/ADS01$ ampinstmgr -l
[Info/1] AMP Instance Manager v2.5.1.8 built 17/09/2024 12:32
[Info/1] Stream: Mainline / Release - built by CUBECODERS/buildbot on CCL-DEV
[Error/1] Failed to read instance data
[Error/1] JsonReaderException
[Error/1] [0] (JsonReaderException) : Error reading JObject from JsonReader. Current JsonReader item is not an object: String. Path ‘[0].AMPVersion’, line 144, position 27.
[Error/1] at Newtonsoft.Json.Linq.JObject.Load (Newtonsoft.Json.JsonReader reader, Newtonsoft.Json.Linq.JsonLoadSettings settings)
at Newtonsoft.Json.Linq.JObject.Load (Newtonsoft.Json.JsonReader reader)
at InstanceManagerPlugin.LocalInstanceManager+VersionObjectConverter.ReadJson (Newtonsoft.Json.JsonReader reader, Type objectType, Object existingValue, Newtonsoft.Json.JsonSerializer serializer)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.DeserializeConvertable (Newtonsoft.Json.JsonConverter converter, Newtonsoft.Json.JsonReader reader, Type objectType, Object existingValue)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue (Newtonsoft.Json.Serialization.JsonProperty property, Newtonsoft.Json.JsonConverter propertyConverter, Newtonsoft.Json.Serialization.JsonContainerContract containerContract, Newtonsoft.Json.Serialization.JsonProperty containerProperty, Newtonsoft.Json.JsonReader reader, Object target)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject (Object newObject, Newtonsoft.Json.JsonReader reader, Newtonsoft.Json.Serialization.JsonObjectContract contract, Newtonsoft.Json.Serialization.JsonProperty member, String id)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject (Newtonsoft.Json.JsonReader reader, Type objectType, Newtonsoft.Json.Serialization.JsonContract contract, Newtonsoft.Json.Serialization.JsonProperty member, Newtonsoft.Json.Serialization.JsonContainerContract containerContract, Newtonsoft.Json.Serialization.JsonProperty containerMember, Object existingValue)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal (Newtonsoft.Json.JsonReader reader, Type objectType, Newtonsoft.Json.Serialization.JsonContract contract, Newtonsoft.Json.Serialization.JsonProperty member, Newtonsoft.Json.Serialization.JsonContainerContract containerContract, Newtonsoft.Json.Serialization.JsonProperty containerMember, Object existingValue)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateList (Collections.IList list, Newtonsoft.Json.JsonReader reader, Newtonsoft.Json.Serialization.JsonArrayContract contract, Newtonsoft.Json.Serialization.JsonProperty containerProperty, String id)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateList (Newtonsoft.Json.JsonReader reader, Type objectType, Newtonsoft.Json.Serialization.JsonContract contract, Newtonsoft.Json.Serialization.JsonProperty member, Object existingValue, String id)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal (Newtonsoft.Json.JsonReader reader, Type objectType, Newtonsoft.Json.Serialization.JsonContract contract, Newtonsoft.Json.Serialization.JsonProperty member, Newtonsoft.Json.Serialization.JsonContainerContract containerContract, Newtonsoft.Json.Serialization.JsonProperty containerMember, Object existingValue)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize (Newtonsoft.Json.JsonReader reader, Type objectType, Boolean checkAdditionalContent)
at Newtonsoft.Json.JsonSerializer.DeserializeInternal (Newtonsoft.Json.JsonReader reader, Type objectType)
at Newtonsoft.Json.JsonSerializer.Deserialize (Newtonsoft.Json.JsonReader reader, Type objectType)
at Newtonsoft.Json.JsonConvert.DeserializeObject (String value, Type type, Newtonsoft.Json.JsonSerializerSettings settings)
at Newtonsoft.Json.JsonConvert.DeserializeObject[T] (String value, Newtonsoft.Json.JsonSerializerSettings settings)
at InstanceManagerPlugin.LocalInstanceManager.GetLocalInstances (String AlternateDefsPath)
amp@ampvm:~/.ampdata/instances/ADS01$

Reproduction Steps

  • Restart the virtual machine where AMP is hosted
  • Open the web interface for AMP, and it will display “AMP Recovery Mode” in the title of the webpage
  • that is all

You need to update the ampinstmgr package

That seems to be updated already to the latest version, it says here it is

[Info/1] AMP Instance Manager v2.6.0.4 built 06/11/2024 22:39

In the log you posted there it said v2.5.1.8

Updating it fixed it last time. Although this time i actually have a web page body, but same issue. I’ve tried going through the guide you posted 12d ago, but it remains the same.

I’ve tried listing instances with ampinstmgr -l, but it just returns this generic message for pretty much every other ampinstmgr command i try:

amp@ampvm:~$ ampinstmgr upgrade ADS01
[Info/1] AMP Instance Manager v2.6.0.6 built 20/11/2024 20:58
[Info/1] Stream: Mainline / Release - built by CUBECODERS/buildbot on CCL-DEV
[Error/1] No such instance matching name: 'ADS01'
amp@ampvm:~$
amp@ampvm:~$ ampinstmgr -l
[Info/1] AMP Instance Manager v2.6.0.6 built 20/11/2024 20:58
[Info/1] Stream: Mainline / Release - built by CUBECODERS/buildbot on CCL-DEV
amp@ampvm:~$ ampinstmgr -p
[Info/1] AMP Instance Manager v2.6.0.6 built 20/11/2024 20:58
[Info/1] Stream: Mainline / Release - built by CUBECODERS/buildbot on CCL-DEV
[Info/1] There are no instances to update.
amp@ampvm:~$

This has happened several times before. It all seem to go terribly wrong after i reboot the virtual machine where AMP is running. I do that by running

sudo reboot

Unless there’s another way to reboot lol.


I have tried running the command that shows in the browser window, but that isnt even recognised:

Copy+restore one of the backup instances.json files in the /home/amp/.ampdata directory, then reboot. The file’s contents couldn’t be saved previously due to the full disk, so that should get things back in order.

That did the trick. It is all up and running now. I should just expand the VM since a full disk can cause this many issues… lol

If it ever happens again, try and resolve the storage issue before rebooting, that way things can hopefully save to the disk. Though sometimes you’re still unlucky

Ah thats a great advice, thanks. This is all just my type of luck :skull_and_crossbones:

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.