Trailing Data Error

I have a new docker installation of Xibo that does not allow me to approve the license for any displays.

Everytime I click edit in the displays menu I get a popup window that says

“Application Message”

“Trailing Data”

Any ideas?

I don’t have a solution but I am experiencing the same thing.

I had a Display that was deleted, readded it with a different Display ID (got given a different ID in Display admin panel), went into the Xibo to approve the display I click Manage but receive the same error message.

It’s a fresh install of 1.8 too, it’s in my test environment with just one display.

Edit: Also tried adding a device that’s never been on Xibo before, this error still comes up.

We don’t experience this issue here, could you please enable CMS debugging and see if there are more information about this error on Logs page?

this appears to be where the error pops up in the log-

299 8493838 2017-03-27 WEB GET DEBUG /display/form/edit/8 Trailing data#0 /var/www/cms/vendor/jenssegers/date/src/Date.php(96): Carbon\Carbon::createFromFormat(‘H:i’, ‘23:45:00’, NULL) #1 /var/www/cms/lib/Service/DateServiceGregorian.php(78): Jenssegers\Date\Date::createFromFormat(‘H:i’, ‘23:45:00’) #2 /var/www/cms/lib/Controller/Display.php(641): Xibo\Service\DateServiceGregorian->parse(‘23:45:00’, ‘H:i’) #3 [internal function]: Xibo\Controller\Display->editForm(‘8’) #4 /var/www/cms/vendor/akrabat/rka-slim-controller/RKA/Slim.php(79): call_user_func_array(Array, Array) #5 [internal function]: RKA\Slim->RKA{closure}(‘8’) #6 /var/www/cms/vendor/slim/slim/Slim/Route.php(468): call_user_func_array(Object(Closure), Array) #7 /var/www/cms/vendor/slim/slim/Slim/Slim.php(1357): Slim\Route->dispatch() #8 /var/www/cms/vendor/slim/slim/Slim/Middleware/Flash.php(85): Slim\Slim->call() #9 /var/www/cms/vendor/slim/slim/Slim/Middleware/MethodOverride.php(92): Slim\Middleware\Flash->call() #10 /var/www/cms/lib/Middleware/Actions.php(141): Slim\Middleware\MethodOverride->call() #11 /var/www/cms/lib/Middleware/Theme.php(35): Xibo\Middleware\Actions->call() #12 /var/www/cms/lib/Middleware/WebAuthentication.php(132): Xibo\Middleware\Theme->call() #13 /var/www/cms/lib/Middleware/CsrfGuard.php(62): Xibo\Middleware\WebAuthentication->call() #14 /var/www/cms/lib/Middleware/State.php(109): Xibo\Middleware\CsrfGuard->call() #15 /var/www/cms/lib/Middleware/Storage.php(47): Xibo\Middleware\State->call() #16 /var/www/cms/lib/Middleware/Xmr.php(36): Xibo\Middleware\Storage->call() #17 /var/www/cms/vendor/slim/slim/Slim/Slim.php(1302): Xibo\Middleware\Xmr->call() #18 /var/www/cms/web/index.php(124): Slim\Slim->run() #19 {main}

I’m having the same sort of issue, except my Manage button works fine, I get the error when I try to Edit the display to authorize it. My first display went in fine on the local network, but I’m at home trying to work on the system remotely.

I just tried it on another laptop and I’m getting the same issue. Same issue also when trying to edit an existing working display. :frowning:

The server at my office is an Ubuntu 12 box with ports forwarded in on 9505 for XMR, and 80 for HTTP.

Logs below…

Date: 2017-04-02 16:17
Channel: WEB
Function: GET
Level: DEBUG

/display/form/edit/2 Trailing data#0 /var/www/xibo/vendor/jenssegers/date/src/Date.php(96): Carbon\Carbon::createFromFormat(‘H:i’, ‘23:59:00’, NULL) #1 /var/www/xibo/lib/Service/DateServiceGregorian.php(78): Jenssegers\Date\Date::createFromFormat(‘H:i’, ‘23:59:00’) #2 /var/www/xibo/lib/Controller/Display.php(641): Xibo\Service\DateServiceGregorian->parse(‘23:59:00’, ‘H:i’) #3 [internal function]: Xibo\Controller\Display->editForm(‘2’) #4 /var/www/xibo/vendor/akrabat/rka-slim-controller/RKA/Slim.php(79): call_user_func_array(Array, Array) #5 [internal function]: RKA\Slim->RKA{closure}(‘2’) #6 /var/www/xibo/vendor/slim/slim/Slim/Route.php(468): call_user_func_array(Object(Closure), Array) #7 /var/www/xibo/vendor/slim/slim/Slim/Slim.php(1357): Slim\Route->dispatch() #8 /var/www/xibo/vendor/slim/slim/Slim/Middleware/Flash.php(85): Slim\Slim->call() #9 /var/www/xibo/vendor/slim/slim/Slim/Middleware/MethodOverride.php(92): Slim\Middleware\Flash->call() #10 /var/www/xibo/lib/Middleware/Actions.php(141): Slim\Middleware\MethodOverride->call() #11 /var70/www/xibo/lib/Middleware/Theme.php(35): Xibo\Middleware\Actions->call() #12 /var/www/xibo/lib/Middleware/WebAuthentication.php(132): Xibo\Middleware\Theme->call() #13 /var/www/xibo/lib/Middleware/CsrfGuard.php(62): Xibo\Middleware\WebAuthentication->call() #14 /var/www/xibo/lib/Middleware/State.php(109): Xibo\Middleware\CsrfGuard->call() #15 /var/www/xibo/lib/Middleware/Storage.php(47): Xibo\Middleware\State->call() #16 /var/www/xibo/lib/Middleware/Xmr.php(36): Xibo\Middleware\Storage->call() #17 /var/www/xibo/vendor/slim/slim/Slim/Slim.php(1302): Xibo\Middleware\Xmr->call() #18 /var/www/xibo/web/index.php(124): Slim\Slim->run() #19 {main}

Open Developer mode in your browser and look at the actual XML/JSON that came back from the server. In my case I hadn’t set up nginx correctly and it was returning an HTML page which gave me the above error.

Make sure your date-time functions are setup correctly in your php.ini as well. Newer PHP’s require you to hardcode a time zone, if you don’t have one, you can get warnings.

Also make sure all your PHP dependencies are installed. If you’re using XMR, the PHP module has to be correctly compiled and installed, I initially just copied the binary from another version of PHP and that gave some odd errors.

Other things I’ve noticed if you use a PHP accelerator or PHP-FPM, they can behave somewhat unstably after code updates, clearing out it’s caches usually ‘helps’.

Can you be a little more specific about “Developer Mode”?

I went through the logs and it looks like the SQL query is returning a null set.

The current display is ID 7. The following query works, returning a single result with all the data on Display 7

  • SET @displayId=‘7’; SELECT display.displayId, display.display, display.defaultLayoutId, layout.layout AS defaultLayout, display.license, display.licensed, display.licensed AS currentlyLicensed, display.loggedIn, display.lastAccessed, display.auditingUntil, display.inc_schedule AS incSchedule, display.email_alert AS emailAlert, display.alert_timeout AS alertTimeout, display.clientAddress, display.mediaInventoryStatus, display.macAddress, display.macAddress AS currentMacAddress, display.lastChanged, display.numberOfMacAddressChanges, display.lastWakeOnLanCommandSent, display.wakeOnLan AS wakeOnLanEnabled, display.wakeOnLanTime, display.broadCastAddress, display.secureOn, display.cidr, X(display.GeoLocation) AS latitude, Y(display.GeoLocation) AS longitude, display.version_instructions AS versionInstructions, display.client_type AS clientType, display.client_version AS clientVersion, display.client_code AS clientCode, display.displayProfileId, display.screenShotRequested, display.storageAvailableSpace, display.storageTotalSpace, displaygroup.displayGroupId, displaygroup.description, display.xmrChannel, display.xmrPubKey, display.lastCommandSuccess, display.deviceName , display.timeZone FROM display INNER JOIN lkdisplaydg ON lkdisplaydg.displayid = display.displayId INNER JOIN displaygroup ON displaygroup.displaygroupid = lkdisplaydg.displaygroupid AND displaygroup.isDisplaySpecific = 1 LEFT OUTER JOIN layout ON layout.layoutid = display.defaultlayoutid WHERE 1 = 1 AND display.displayid = @displayId ORDER BY display

The next query returns 2 rows, 1 Android and 1 Windows, as expected:

  • SET @isDefault=‘1’; SELECT displayProfileId, name, type, config, isDefault, userId FROM displayprofile WHERE 1 = 1 AND isDefault = @isDefault

The next thing that loads shows “Config loaded [29].” I’m guessing that’s the JSON query you were referring to…

  • Config loaded [29]: [ { “name”: “CollectInterval”, “value”: 300, “type”: “int” }, { “name”: “DownloadStartWindow”, “value”: “00:00”, “type”: “string” }, { “name”: “DownloadEndWindow”, “value”: “23:59:00”, “type”: “string” }, { “name”: “PowerpointEnabled”, “value”: 0, “type”: “checkbox” }, { “name”: “StatsEnabled”, “value”: 0, “type”: “checkbox” }, { “name”: “XmrNetworkAddress”, “value”: “”, “type”: “string” }, { “name”: “SizeX”, “value”: 0, “type”: “double” }, { “name”: “SizeY”, “value”: 0, “type”: “double” }, { “name”: “OffsetX”, “value”: 0, “type”: “double” }, { “name”: “OffsetY”, “value”: 0, “type”: “double” }, { “name”: “ClientInfomationCtrlKey”, “value”: 0, “type”: “checkbox” }, { “name”: “ClientInformationKeyCode”, “value”: “I”, “type”: “string” }, { “name”: “LogLevel”, “value”: “error”, “type”: “string” }, { “name”: “LogToDiskLocation”, “value”: “”, “type”: “string” }, { “name”: “ShowInTaskbar”, “value”: 1, “type”: “checkbox” }, { “name”: “CursorStartPosition”, “value”: “Bottom Right”, “type”: “string” }, { “name”: “DoubleBuffering”, “value”: 1, “type”: “checkbox” }, { “name”: “EmptyLayoutDuration”, “value”: 10, “type”: “int” }, { “name”: “EnableMouse”, “value”: 0, “type”: “checkbox” }, { “name”: “EnableShellCommands”, “value”: 1, “type”: “checkbox” }, { “name”: “ExpireModifiedLayouts”, “value”: 1, “type”: “checkbox” }, { “name”: “MaxConcurrentDownloads”, “value”: 2, “type”: “int” }, { “name”: “ShellCommandAllowList”, “value”: “”, “type”: “string” }, { “name”: “UseCefWebBrowser”, “value”: 0, “type”: “checkbox” }, { “name”: “SendCurrentLayoutAsStatusUpdate”, “value”: 1, “type”: “checkbox” }, { “name”: “ScreenShotRequestInterval”, “value”: 0, “type”: “int” }, { “name”: “MaxLogFileUploads”, “value”: 3, “type”: “int” }, { “name”: “EmbeddedServerPort”, “value”: 9696, “type”: “int” }, { “name”: “PreventSleep”, “value”: 1, “type”: “checkbox” } ]

The next query returns 0 rows:

  • SET @displayProfileId=‘2’; SELECT command.commandId, command.command, command.code, command.description, command.userId , commandString, validationString FROM command INNER JOIN lkcommanddisplayprofile ON lkcommanddisplayprofile.commandId = command.commandId AND lkcommanddisplayprofile.displayProfileId = @displayProfileId WHERE 1 = 1 ORDER BY command

That returns a 0 result set… so does that mean there are no commands are assigned to this Display Profile…?

I installed everything via apt… just don’t get why it was working fine for a day and then dead…

-Ryan

Thank you for everyone’s comments. I can see the problem and have created a :bug: for this issue here:

Good detective work! Yes it does, but that isn’t a problem (it is valid for a display to have 0 commands).

EDIT: Patch available in the above bug report.