DLIB: Malformed message (SOLVED)

Compiled desktop apps generate a WARNING:DLIB error in the console while running.

Steps to reproduce the behavior:

  1. Download Side Scroller tutorial
  2. Build and run.
  3. Console shows no build errors and app starts on desktop.
  4. Console shows: INFO:DLIB SSDP: Started on address 192.168.1.106
  5. Console starts printing error within a few seconds:
    WARNING:DLIB: Malformed message from 192.168.1.103.55132. Missing USN header.
  6. The message repeats about 1 minute intervals but shows a different port address each time.
  7. Errors stop when app is closed.

Expected behavior is not to see these warnings

Defold version 1.2.167

Platform is Lubuntu 20.04
Device is desktop PC.
defold_1

We use the Simple Service Discovery Protocol to connect between the editor and a running engine/game so that you can do Project->Target from the editor to build directly to device. This seems to fail on your machine for some reason, or at least the engine is receiving data in a format that it wasn’t expecting.

1 Like

Thank you for the reply. I’ve checked and libgssdp-1.2-0 was not present on my system so I’ll start there. I’ll get it installed along with some ssdp tools and see if that remedies the problem. I’ll get back with the results either way.

Cheers.

Unfortunately, installing the missing libs and tools did not remedy the issue for me. Looks like I’ll have to do some reading as the protocol is not familiar to me and I need to poke around the internals a bit. I guess I’ll start here: https://tools.ietf.org/html/draft-cai-ssdp-v1-02 and see what develops.

Cheers and be well.

I believe we implement the protocol ourselves and it is used in the communication between the editor running Defold engines available on the same network. I don’t think installing any additional libs will solve the problem. It’s rather that the engine for some reason is receiving unexpected data from either the editor or something else on your network.

I assume that the game starts as expected? But you can’t connect to it from Project->Target?

1 Like

Ah, I see. Well, in the Project -> Target dropdown I can see both the Local dmengine 127.0.0.1:34551 and Local eon 192.168.1.106:34551 IP addresses and ports. The app starts normally in both desktop and HTML5 modes and appears to work fine. I can hot load changes normally, etc.

I did a clean install of lubuntu 19.10 and tested using the latest 1.2.167 release. Same issue with the sspd message. Please bear with me on this and excuse my non-understanding. I’m curious why would a desktop app which is not running in a browser send a HTTP/1.1 response? Something coded into the Defold app framework expecting a NOTIFY event regardless? Cheers.

[EDIT] Updated to 1.2.168 release with same results.

Here is the Target Discovery Log after a couple of iterations:

SSDP: Searching for devices

SSDP: [192.168.1.103] Malformed NOTIFY response: NOTIFY * HTTP/1.1
HOST: 255.255.255.255:1900
CACHE-CONTROL: max-age=10
SERVICE_NAME: ControlServer-MLib
MESSAGE_TYPE: CONTROLLER_START
SPEC_VER: MSpec-1.00

SSDP: Searching for devices
SSDP: [192.168.1.103] Malformed NOTIFY response: NOTIFY * HTTP/1.1
HOST: 255.255.255.255:1900
CACHE-CONTROL: max-age=10
SERVICE_NAME: ControlServer-MLib
MESSAGE_TYPE: CONTROLLER_START
SPEC_VER: MSpec-1.00

SSDP: Searching for devices
SSDP: [192.168.1.103] Malformed NOTIFY response: NOTIFY * HTTP/1.1
HOST: 255.255.255.255:1900
CACHE-CONTROL: max-age=10
SERVICE_NAME: ControlServer-MLib
MESSAGE_TYPE: CONTROLLER_START
SPEC_VER: MSpec-1.00

It could be something else sending ssdp messages, searching for ControlServer-Mlib gives hits for some Samsung air conditioner :slight_smile:

3 Likes

… and http can be used for all sorts of applications, not just browsers. I guess for ssdp it’s used as a simple transport mechanism that plays well with firewalls.

You nailed it Erik! I have several devices on my home LAN so I checked out the routing. Lo and behold, Defold is talking to my, believe it or not, wireless Bass Sub-woofer! My router shows it sitting on the IP address Defold is getting the Malformed message from. In the Editor UI, Project -> Target shows my local machine IP and port correctly. So the problem is not with either Defold or my lubuntu install. :slight_smile:

I guess I need a smarter sub-woofer. :wink:

Thanks for your insight and help on this Britzl and Erik. Cheers all and I think that solves the issue.

3 Likes