View Issue Details

IDProjectCategoryView StatusLast Update
0019610MMW 5Syncpublic2023-09-28 13:58
Reporterpeke Assigned To 
PriorityurgentSeverityfeatureReproducibilityN/A
Status closedResolutionreopened 
Target Version5.1Fixed in Version5.1 
Summary0019610: Check if MM UPnP server is accessable over LAN
DescriptionIn addition 0017917 even if network connection is set as private it is possible that some apps still block incoming traffic eg. #19609

The solution would be to quickly when user click on CHECK button to try to download XML file from http://127.0.0.1:<MM_SERVERPORT>/DeviceDescription.xml (eg. http://127.0.0.1:43831/DeviceDescription.xml) and if accessible (which means MM server is UP and running normally) then immediately check if MM Server is accessible from LAN by downloading same XML from http://<PC_LAN_IP>:<MM_SERVERPORT>/DeviceDescription.xml (eg. http://192.168.1.22:43831/DeviceDescription.xml) Which will fail if Firewall or App (like mentioned case in 0016609) block incoming traffic from devices/PCs on same LAN/WLAN.

NOTE: This solution would avoid opening user default browser but would present dialogs:
a) "Mediamonkey Sync Server on <PC_LAN_IP>:<MM_SERVERPORT> should be accessible from network. If you need further help click on HELP button." [HELP] [OK]
b) "Mediamonkey Sync Server on <PC_LAN_IP>:<MM_SERVERPORT> is most likely blocked by network settings. For further help click on HELP button." [HELP] [OK]

HELP BUTTON will redirect to https://www.mediamonkey.com/support/knowledge-base/mediamonkey-upnp-dlna/mediamonkey-upnp-server-inaccessible/ or https://www.mediamonkey.com/wiki/index.php/WebHelp:Setting_UPnP_DLNA_Media_Servers/5.0#Related
TagsNo tags attached.
Fixed in build2800

Relationships

related to 0017917 closedLudek Sync: Check connection type 
related to 0018168 closedLudek Media Server options: Add check button to server tab 

Activities

Ludek

2022-12-07 18:25

developer   ~0070505

Last edited: 2022-12-07 18:30

Peke, but the [Check] button (from 0017917 ) already does this, i.e. it checks:
http://192.168.0.11:4000/DeviceDescription.xml
(not localhost).

So I am not sure what change are you suggesting?

Are you suggesting that instead of opening http://192.168.0.11:4000/DeviceDescription.xml in a default browser MM5 itself should do the query and show a dialog?
I guess that if it is firewall blocking the connections then it will be accessible from the local computer, but will fail from MMA anyhow, so I don't understand how it helps to troubleshoot the common firewall issue?

peke

2022-12-08 18:53

developer   ~0070508

Yes we added CHECK in 0017917 and it was needed due the process of releasing MMA 2.x when user can easily scan QR Code while not needed to use Beta versions.

This bug further improve automation process without need of using third party apps (browser) and handle test internally.

yes, I suggest that MM do the check itself and show dialog.

Problem is that current debugging process is: MMA do not see MM5 server on WLAN. Then in Tools -> Options -> Library -> Media Sharing -> Server Properties -> Server Tab -> Scan QR code with device (Fail) -> Check it opens Default browser and (not) show Device info (as user said some text) -> if fail to show -> Change address to http://127.0.0.1:4000/DeviceDescription.xml and see if it loads -> then go to MM support/forum write report.

By solving bug, this process is kept to MM eg. MMA do not see MM5 server on WLAN. Then in Tools -> Options -> Library -> Media Sharing -> Server Properties -> Server Tab -> Check Button -> It tries to download http://127.0.0.1:4000/DeviceDescription.xml if it succeed then try to download http://192.168.0.11:4000/DeviceDescription.xml and if it fail on either one it Shows Dialog "It looks like 192.168.0.11:4000 is blocked by network firewall. for further help click on HELP to see known issues and solution. [HELP] [OK]", if everything is OK it will show dialog "MediaMonkey server 192.168.0.11:4000 appears running normally. Scan QR core on Device to manually check and/or add Sync server manually. [HELP] [OK]"

This approach would avoid multiple click as [HELP] will directly point user to HELP/KB article on solution where he/she can easily post support ticket.

Note I tested this approach and if MM server is UP and RUNNING "http://127.0.0.1:4000/DeviceDescription.xml" works 100%, but if firewall is blocking or there is LAN Access block or SSID WLAN isolation on router "http://192.168.0.11:4000/DeviceDescription.xml" fail 100% due the fact to retrieve "http://192.168.0.11:4000/DeviceDescription.xml" PC query router for URL and create Loopback PC -> Router -> PC that gets dropped by firewall.

Ludek

2022-12-14 18:56

developer   ~0070557

Last edited: 2022-12-14 19:03

Peke, I don't follow.
If MM5 is blocked by firewall then http://192.168.0.11:4000/DeviceDescription.xml is still accessible from the same machine where MM5 is running, but isn't accessible from other devices on the network.

I tested this way:
1) Clean install of MM5 and disable Windows Firewall exception
2) Cancel the Windows Security Alert dialog to block MM5
4) Click the [Check] button in MM5
=> http://192.168.0.11:4000/DeviceDescription.xml is accessible via Chrome browser on the same PC
5) Put http://192.168.0.11:4000/DeviceDescription.xml into Chrome browser on another device (tested my Android device where MMA is running)
=> http://192.168.0.11:4000/DeviceDescription.xml is inaccessible on the phone
6) Check 'Add Windows Firewall Exception' in MM5 and [OK] options dialog
=> http://192.168.0.11:4000/DeviceDescription.xml is now accessible on all devices.

So I wonder how you tested this as you are getting different results??
Wasn't it rather your test error?

peke

2023-01-01 13:02

developer   ~0070770

Last edited: 2023-01-01 13:28

There is a case where http://192.168.0.11:4000/DeviceDescription.xml is not accessible (Router loop access blocked due the LAN/WLAN settings and device isolation), but http://127.0.0.1:4000/DeviceDescription.xml is accessible as it is not affected by Firewall settings as packets are sent to localhost to check availability of local service open port.

I tested this way:
0) Router is set to AP Isolation (Intranet access blocked) (See attached picture) NOTE: That setting use same approach like VPN Clients (NordVPN have that option #19609) that blocks inbound/outbound LAN access.
1) Clean install of MM5 and disable Windows Firewall exception
2) Cancel the Windows Security Alert dialog to block MM5
4) Click the [Check] button in MM5
=> http://192.168.0.11:4000/DeviceDescription.xml is inaccessible via Edge browser on the same PC
=> edited address to http://127.0.0.1:4000/DeviceDescription.xml is accessible via Edge browser on the same PC
5) Put http://192.168.0.11:4000/DeviceDescription.xml into Chrome browser on another device (tested my Android device where MMA is running)
=> http://192.168.0.11:4000/DeviceDescription.xml is inaccessible on the phone

Conclusion is that MM5 Sync Server works normally eg. 127.0.0.1/localhost works even 192.168.0.11 is not accessible, thus MM5 was blocked by network settings. Also based on you tests (I am able to get same result) when both 127.0.0.1 and 192.168.0.11 work then like you pointed it is firewall issue.

peke

2023-01-01 13:06

developer   ~0070771

image.png (25,112 bytes)   
image.png (25,112 bytes)   

peke

2023-01-01 13:27

developer   ~0070772

Last edited: 2023-01-01 13:29

What I am suggesting that Along port OPEN on MM start we also check if http://192.168.0.11:4000/DeviceDescription.xml and http://127.0.0.1:4000/DeviceDescription.xml is accessible and return same content and show Warning dialog according to results.

eg. If: http://192.168.0.11:4000/DeviceDescription.xml is not accessible and http://127.0.0.1:4000/DeviceDescription.xml is then warn user about possible issues accessing MM server from other devices on LAN/WLAN and that WiFi Sync may not work, so user needs to check its settings (LINK to KB article #19609).

Ludek

2023-01-01 17:39

developer   ~0070776

My test case in note 0019610:0070557 is much more common, i.e. user ends with http://192.168.0.11:4000/DeviceDescription.xml accessible on the local machine, but inaccessible on the other machines/devices.

So your suggestion simply does not work, closing as "not fixable"..

peke

2023-01-01 20:58

developer   ~0070777

Last edited: 2023-01-01 21:22

Not sure I understand your test case 0019610:0070557 fail to show any result on all (steps 4-6) when using NordVPN (Settings -> Connection -> ENABLE Invisible on LAN), many other VPN and Third party Firewalls have that enabled by default or if router AP isolation (block intranet) is enabled (Default for Guest Networks).

NOTE: 'Add Windows Firewall Exception' is enabled and checked in step 6, also firewall entry is correct and it still fail due teh above reasons. Only way in that case to confirm MM server is running OK is to put http://127.0.0.1:4000/DeviceDescription.xml in browser.

Or I misunderstand what you are saying and MM already check if server is started correctly by fetching server info from http://127.0.0.1:4000/DeviceDescription.xml ( http://localhost:4000/DeviceDescription.xml ) which is only correct way to check if some service run on Local Machine?

EDIT: This behavior is already confirmed by other developers that use VPN where http://127.0.0.1:4000/DeviceDescription.xml show info, but http://192.168.0.11:4000/DeviceDescription.xml do not.

Ludek

2023-01-02 16:17

developer   ~0070780

Last edited: 2023-01-02 16:19

Peke, did you read my notes carefully? The point is that http://192.168.0.11:4000/DeviceDescription.xml is accessible on the local machine (where MM5 is running), but is NOT accessible on other devices (because of firewall issue), so even when MM5 can access itself there is no guarance that it is accessible from other machines/devices. So it cannot be used as the detection.

It means that even the current [Check] button does not guarente that the server is accessible on the network.

EDIT: maybe you just misread step 4) in my test case 0019610:0070557 where for some reason you are getting different results?

Ludek

2023-01-02 17:21

developer   ~0070781

As discussed offline, Peke gets different results because of his router is set to AP Isolation (step zero at 0019610:0070770 )
Not sure how common case this is (I guess the firewall issue is more common), but if the AP isolation issue is common then it should be mentioned in https://www.mediamonkey.com/support/knowledge-base/mediamonkey-upnp-dlna/mediamonkey-upnp-server-inaccessible/
at first place.

Ludek

2023-01-02 17:46

developer   ~0070782

Last edited: 2023-01-02 20:49

To summarize:
A) if both 127.0.0.1 and 192.168.x.x are accessible then it is firewall issue (or isn't and everything is OK), it gives us zero information! (my test case 0019610:0070557)
B) if 127.0.0.1 is accessible and 192.168.x.x is not accessible (Peke's test case 0019610:0070770)
Peke said that it can be: AP Isolation, VPN connection, Wrong LAN/WLAN Router setup, Wrong Network Adapter set
C) if both 127.0.0.1 and 192.168.x.x are not accessible -- not sure how common this is , but Peke indicated that MM5 restart solved the issue or server start test give better reason for failing.

If that's the case then we can detect B) => this should be pointed to another KB article dedicated to the "AP Isolation, VPN connection" issues.
And also detect C) with suggestion to restart MM5 ?

i.e. the workflow would be:
1) MM5 starts server
2) After several seconds it checks it's accessibility on 127.0.0.0 and 192.168.x.x
In case C) it shows:
"%s cannot be accessed at %d" where %s is name of the server and %d is http://127.0.0.1:4000/DeviceDescription.xml
[OK][Help][Restart]

In case B) it shows:
"%s cannot be accessed at %d" where %s is name of the server and %d is http://192.168.0.1:4000/DeviceDescription.xml
[OK][Help]

So let's create KB for cases C&B and assign then to me for implementation

Ludek

2023-01-02 19:45

developer   ~0070789

Last edited: 2023-01-02 20:52

Peke indicated that for the KB article update there is #19609 already (though probably for the case B) it would be better to have separated KB article (as the original KB article is already quite too long to read/troubleshoot) => noted in #19609

And that cases A/B/C should show only on [CHECK] button click and B on MM5/Server Start (as C is covered by existing Port Can't open dialog and in case of A we can't know MM server access state so it will not be shown).

For the case A) Peke suggested text:
"%s appears running normally, if you still can't access server on the other machines/devices click Help."
[OK][Help]

Ludek

2023-01-03 12:37

developer   ~0070805

Last edited: 2023-01-03 12:54

Implemented in 2800.

Finally I left the check only upon clicking the [Check] button (previously implemented as 0018168) bacause it would be rather bothering to show a message everytime after MM5/server start.

-- For the case A used new string '%s appears running normally, if you still can't access server on the other machines/devices click Help.' and Help button directed to:
https://www.mediamonkey.com/wiki/WebHelp:Setting_UPnP_DLNA_Media_Servers/5.0#Firewall

-- For the failure (case B) used existing string '%s cannot be reached' and Help button directed to https://www.mediamonkey.com/upnp-client-connect-error (to be updated in course of #19609)

-- For the case C) used existing string '%s cannot be reached' plus a new string 'The server is not running'

peke

2023-09-28 13:58

developer   ~0072921

Verified 2816