Plugin crashing Luup engine

MCV, help!

I’ve had users report that they are trying to install a plugin (CurrentCost) from apps.mios.com and it is putting their Veras into an infinite loop.

I am able to reproduce this.

  1. Ensure that none of the eleven plugin files is present in /etc/cmh-ludl
  2. Log in through the Vera interface.
  3. Go to Apps > Install Apps.
  4. Find the CurrentCost EnviR plugin in the list.
  5. Install the plugin, version 25.0
  6. Wait.

In the Luup log:

[code]08 05/25/12 21:29:13.985 JobHandler_LuaUPnP::HandleActionRequest device: 0 service: urn:micasaverde-com:serviceId:HomeAutomationGateway1 action: CreatePlugin <0x2e54b680>
08 05/25/12 21:29:13.986 JobHandler_LuaUPnP::HandleActionRequest argument PluginNum=1128 <0x2e54b680>

03 05/25/12 21:29:16.297 JobHandler_LuaUPnP::Reload: New Plugin Critical 1 m_bCriticalOnly 0 dirty data 0 <0x2e54b680>
03 05/25/12 21:29:16.297 JobHandler_LuaUPnP::Reload: New Plugin Critical 1 pending write 186, try again later <0x2e54b680>
03 05/25/12 21:29:17.100 JobHandler_LuaUPnP::Reload: PendingWrite Critical 1 m_bCriticalOnly 0 dirty data 0 <0x2c14b680>
06 05/25/12 21:29:17.163 Device_Variable::m_szValue_set device: 1 service: urn:micasaverde-com:serviceId:ZWaveNetwork1 variable: NetStatusID was: 1 now: 2 #hooks: 0 upnp: 0 v:0xabd7c0/NONE duplicate:0 <0x2c14b680>
06 05/25/12 21:29:17.164 Device_Variable::m_szValue_set device: 1 service: urn:micasaverde-com:serviceId:ZWaveNetwork1 variable: NetStatusText was: OK now: Resetting ZWave Network #hooks: 0 upnp: 0 v:0xadad28/NONE duplicate:0 <0x2c14b680>
01 05/25/12 21:29:17.282 Mongoose XXX-mg_stop1 0x9f5d80 1 2 <0x2ba18000>
01 05/25/12 21:29:19.283 Mongoose XXX-mg_stop2 0x9f5d80 2 2 <0x2ba18000>
01 05/25/12 21:29:19.283 Mongoose XXX-mg_stop3 0x9f5d80 2 2 <0x2ba18000>
01 05/25/12 21:29:19.284 Mongoose XXX-mg_stop4 0x9f5d80 11427064 2 <0x2ba18000>

2012-05-25 21:29:19 - LuaUPnP Terminated with Exit Code: 250

2012-05-25 21:29:19 - LuaUPnP crash

01 2012-5-25 21:16:22 caught signal 6 <0x2c4d3680>
01 2012-5-25 21:16:38 caught signal 6 <0x2bdcf680>
01 2012-5-25 21:19:0 caught signal 6 <0x2c241680>
01 2012-5-25 21:19:16 caught signal 6 <0x2c475680>
01 2012-5-25 21:19:32 caught signal 6 <0x2c48d680>
01 2012-5-25 21:19:48 caught signal 6 <0x2bb79680>
01 2012-5-25 21:20:4 caught signal 6 <0x2bb5b680>
01 2012-5-25 21:20:56 caught signal 6 <0x2c54b680>
01 2012-5-25 21:29:19 caught signal 6 <0x2c74b680>
---------------exited-------------
[/code]

Afterwards this repeats forever:

[code]03 05/25/12 21:33:36.710 LuaUPNP: starting bLogUPnP 0 <0x2b45a000>
02 05/25/12 21:33:36.719 JobHandler_LuaUPnP::Run: pid 18405 didn’t exit <0x2b45a000>
02 05/25/12 21:33:36.794 UserData::LoadUserData previous: 0 from 1.5.359 <0x2b45a000>

03 05/25/12 21:33:36.812 UserData::LoadUserData BuildVersion: 1.5.359 SvnVersion: 5806 Model: 33 MiCasaVerde VeraLite flush: 0 changed: 0 resync: 10067 syncdevice:1 <0x2b45a000>
02 05/25/12 21:33:36.815 JobHandler_LuaUPnP::FetchMissingFiles need to download plugin 188 <0x2b45a000>
02 05/25/12 21:33:36.816 JobHandler_LuaUPnP::m_sMissingFile_set plugin <0x2b45a000>
01 05/25/12 21:33:36.882 Device_LuaUPnP::LoadDeviceDoc can’t load /etc/cmh-lu//D_CurrentCostEnviR1.xml <0x2b45a000>
02 05/25/12 21:33:36.882 JobHandler_LuaUPnP::m_sMissingFile_set /etc/cmh-lu//D_CurrentCostEnviR1.xml <0x2b45a000>
01 05/25/12 21:33:36.882 JobHandler_LuaUPnP::CreateDevice_LuaUPnP failed to load 186/D_CurrentCostEnviR1.xml so device 186 is offline <0x2b45a000>
01 05/25/12 21:33:37.129 Device_LuaUPnP::CreateServices Aborting device 186 because the topmost device has no interface <0x2b45a000>
01 05/25/12 21:33:37.130 JobHandler_LuaUPnP::CreateAllServices failed to create 186 <0x2b45a000>

01 05/25/12 21:33:37.189 Device_LuaUPnP::CreateImplementations Aborting 186 because it failed to load <0x2b45a000>
01 05/25/12 21:33:37.189 JobHandler_LuaUPnP::CreateAllImplementations failed to create 186 <0x2b45a000>

02 05/25/12 21:33:42.556 JobHandler_LuaUPnP::StartUPnPServices starting with /etc/cmh-ludl/ / http://10.191.21.248:49451/luaupnp.xml <0x2b45a000>
09 05/25/12 21:33:42.661 JobHandler_LuaUPnP::Run device 186 room 0 type urn:schemas-futzle-com:device:CurrentCostEnviR:1 id parent 0/0xa4e380 upnp: 0 <0x2b45a000>

03 05/25/12 21:33:42.680 JobHandler_LuaUPnP::Run ready 24 devices installation 35000308 missing /etc/cmh-lu//D_CurrentCostEnviR1.xml version 1.5.359 allow_evt: 1 allow_ud: 1 upnp 0 changed: 0 pMem 0xc42000 start 10121216 diff: 2732032 <0x2b45a000>
02 05/25/12 21:33:44.101 ZWaveJobHandler::SetDeviceStatus XXX2 0/0/0/0 LEAK this:81920 start:81920 to 0xc56000 <0x2bb8d680>

01 05/25/12 21:33:45.180 JobHandler_LuaUPnP::DownloadPlugin 188 failed to convert error -4: ERROR: no version relased for this plugin LEAK this:-602112 start:73728 to 0xc54000 <0x2bd8d680>
01 05/25/12 21:33:45.181 JobHandler_LuaUPnP::DownloadFiles new plugin 188 returned 0 <0x2bd8d680>
03 05/25/12 21:33:49.133 JobHandler_LuaUPnP::Reload: Downloaded Plugin Critical 0 m_bCriticalOnly 0 dirty data 0 LEAK this:2461696 start:2535424 to 0xead000 <0x2bd8d680>
06 05/25/12 21:33:49.197 Device_Variable::m_szValue_set device: 1 service: urn:micasaverde-com:serviceId:ZWaveNetwork1 variable: NetStatusID was: 1 now: 2 #hooks: 0 upnp: 0 v:0xb0b7a8/NONE duplicate:0 <0x2bd8d680>
06 05/25/12 21:33:49.198 Device_Variable::m_szValue_set device: 1 service: urn:micasaverde-com:serviceId:ZWaveNetwork1 variable: NetStatusText was: OK now: Resetting ZWave Network #hooks: 0 upnp: 0 v:0xb28d10/NONE duplicate:0 <0x2bd8d680>
01 05/25/12 21:33:49.323 Mongoose XXX-mg_stop1 0xa422f0 1 2 <0x2b45a000>
01 05/25/12 21:33:51.324 Mongoose XXX-mg_stop2 0xa422f0 2 2 <0x2b45a000>
01 05/25/12 21:33:51.324 Mongoose XXX-mg_stop3 0xa422f0 2 2 <0x2b45a000>
01 05/25/12 21:33:51.325 Mongoose XXX-mg_stop4 0xa422f0 12610752 2 <0x2b45a000>

2012-05-25 21:33:51 - LuaUPnP Terminated with Exit Code: 250

2012-05-25 21:33:51 - LuaUPnP crash
[/code]

This has been reported on 1.5.346 but I also see it on 1.5.359. It’s quite repeatable so you should be able to reproduce it on your test hardware.

Edit: The Plugin 188 stuff is—I think—unrelated. It’s still there after I uninstall the CurrentCost plugin.

If I point my web browser to apps.mios.com, log in and use it to remotely install the same plugin onto my Vera, I get no crash.

When MiOS install a plugin it makes a request for the plugin version using get_plugin_version2.php. This PHP script expects the firmware version as a parameter, based on which it selects the appropriate version, but MiOS doesn’t put this parameter in the request. The result is that the smallest published version is always returned, which didn’t coincide with the latest published version. This causes LuaUPnP to enter a restart loop. I unpublished the old version (17.3) this stopped the LuaUPnP restart loop.

I sent an e-mail to Aaron about this.

Thanks, Florin; unpublishing the older version has indeed stopped the infinite crashes. I hope that this doesn’t mess with users on the older firmware that this version was still supporting.

I wish I could say that I’m happy with the outcome, but I’m not yet. Seeing some of the following might go some way to rectifying that.

[ul][li]A bug number in Mantis where I can follow the progress of this bug and its repair.[/li]
[li]A guide for developers describing what parts of the apps.mios.com interface are not yet functional, and in particular, what parts of the interface will just plain break if developers try to use them.[/li]
[li]A rough roadmap telling developers when apps.mios.com will be ready for serious use, so that I can plan my plugins to be ready for that time.[/li][/ul]

Fine, I’ll raise the issue myself.

Please start taking your bug tracking system seriously.

The truth is that we didn’t know this was a problem until you mentioned it. A more detailed guide than the existing ones is scheduled for this month.

A bug fixing and feature adding session is scheduled for this month, though I don’t know the exact week.