Opened 7 years ago
Closed 5 years ago
#580 closed баг (fixed)
Вместо соединения с указанным хостом пульт выдаёт ошибку соединения с localhost
Reported by: | san | Owned by: | alx |
---|---|---|---|
Priority: | major | Milestone: | 1 очередь |
Component: | ПО MC04-Dispatcher. Пульт диспетчера/техника | Keywords: | |
Cc: |
Description (last modified by )
Проявляется на машине у которой нет маршрута в интернет.
Видит ли эта машина сервер не знаю, странным кажется сам факт попытки соединиться с локалхост.
r943
содержимое дебаг-лога:
2017.12.26 13:31:41.574 [DEBUG ] Loading config from C:/Users/telecom/AppData/Local/MC04Dispatcher.xml 2017.12.26 13:31:53.595 [DEBUG ] sip_endpoint.c .Creating endpoint instance... 2017.12.26 13:31:53.595 [DEBUG ] pjlib .select() I/O Queue created (043D4BD8) 2017.12.26 13:31:53.595 [DEBUG ] sip_endpoint.c .Module "mod-msg-print" registered 2017.12.26 13:31:53.595 [DEBUG ] sip_transport. .Transport manager created. 2017.12.26 13:31:53.595 [DEBUG ] pjsua_core.c .PJSUA state changed: NULL --> CREATED 2017.12.26 13:31:53.610 [INFO ] pjsua_core.c .pjsua version 2.5.5 for initialized 2017.12.26 13:31:53.610 [ERROR ] error getting local IPv4 address 2017.12.26 13:31:53.610 [ERROR ] pjsua_core.c Error creating transport: Unsupported transport (PJSIP_EUNSUPTRANSPORT) [status=171060] 2017.12.26 13:31:53.610 [ERROR ] CPJSIPSUA::Init(): cannot create IPv4 TLS transport: Unsupported transport (PJSIP_EUNSUPTRANSPORT) 2017.12.26 13:31:53.610 [ERROR ] error getting local IPv6 address 2017.12.26 13:31:53.610 [ERROR ] pjsua_core.c Error creating transport: Unsupported transport (PJSIP_EUNSUPTRANSPORT) [status=171060] 2017.12.26 13:31:53.610 [ERROR ] CPJSIPSUA::Init(): cannot create IPv6 TLS transport: Unsupported transport (PJSIP_EUNSUPTRANSPORT)
Attachments (2)
Change History (26)
by , 7 years ago
by , 7 years ago
comment:1 by , 7 years ago
Description: | modified (diff) |
---|
comment:2 by , 7 years ago
comment:3 by , 7 years ago
Replying to san:
Судя по этим записым в логе:
2017.12.26 13:31:53.610 [ERROR ] error getting local IPv4 address 2017.12.26 13:31:53.610 [ERROR ] pjsua_core.c Error creating transport: Unsupported transport (PJSIP_EUNSUPTRANSPORT) [status=171060] 2017.12.26 13:31:53.610 [ERROR ] CPJSIPSUA::Init(): cannot create IPv4 TLS transport: Unsupported transport (PJSIP_EUNSUPTRANSPORT) 2017.12.26 13:31:53.610 [ERROR ] error getting local IPv6 address 2017.12.26 13:31:53.610 [ERROR ] pjsua_core.c Error creating transport: Unsupported transport (PJSIP_EUNSUPTRANSPORT) [status=171060] 2017.12.26 13:31:53.610 [ERROR ] CPJSIPSUA::Init(): cannot create IPv6 TLS transport: Unsupported transport (PJSIP_EUNSUPTRANSPORT)
несоединение с базой данных - не единственная проблема этого компьютера. Пульт вообще не может определить свои локальные адреса и создать SIP транспорты... Похоже, на этом компьютере что-то не так с настройками сети...
follow-up: 5 comment:4 by , 7 years ago
cannot create TLS transport
- под Windows аналогичное поведение c созданием TLS транспорта на моих 2-х компьютерах.
определить свои локальные адреса
он не может потому что нет маршрутов в интернет
А адрес 192.168.100.142 не локальный, и маршрут в таблице присутствует : 192.168.100.0 mask: 255.255.255.0 interface: 192.168.100.177
follow-up: 6 comment:5 by , 7 years ago
Replying to san:
определить свои локальные адреса
он не может потому что нет маршрутов в интернет
Не думаю... Специально сейчас удалил маршрут по умолчанию, и это не помешало пульту выбрать адрес, создать транспорты и нормально работать.
follow-up: 7 comment:6 by , 7 years ago
Replying to alx:
он не может потому что нет маршрутов в интернет
Не думаю... Специально сейчас удалил маршрут по умолчанию, и это не помешало пульту выбрать адрес, создать транспорты и нормально работать.
Оказывается, я поторопился. :) Действительно, при удалении дефолтного маршрута пульт не может выбрать себе адрес, и сообщение "error getting local IPv4 address" в логе присутствует. Однако, созданию транспортов это не мешает...
comment:7 by , 7 years ago
Replying to alx:
Действительно, при удалении дефолтного маршрута пульт не может выбрать себе адрес,
Если еще точнее, функция pj_getdefaultipinterface() не может быбрать адрес и возвращает ошибку, однако далее при создании SIP транспортов PJSIP каким-то одразом адрес-таки себе выбирает.
follow-up: 9 comment:8 by , 7 years ago
Но вопрос был про локалхост, почему sql клиент пытается подключиться к локалхосту когда указан внешний адрес?
comment:9 by , 7 years ago
Replying to san:
Но вопрос был про локалхост,
Я понимаю. :) Выше было "лирическое отступление". :) Возвращаемся к теме тикета.
почему sql клиент пытается подключиться к локалхосту когда указан внешний адрес?
Я не думаю, что он пытается подключиться к localhost. Алгоритм работы следующий:
- При нажатии "Вход" пульт парсит (средствами PJSIP) URI, введенный в строку "Пользователь" (при необходимости добавляя слева "sip:"). В результате получает по-отдельности имя пользователя, имя хоста и номер порта.
- Имя пользователя, имя хоста и введенный пользователем пароль передаются в mysql_real_connect().
- mysql_real_connect() возвращает ошибку, которая отображается в нижней части диалога.
Возможные версии, как в сообщении об ошибке, возвращаемом libmysql, могло появится localhost:
- пользователь ввел localhost в качестве имени домена (потом, уже после появления сообщения об ошибке, пользователь мог его изменить).
- пользователь ввел домен 192.168.100.142, но PJSIP в процессе парсинга введенного URI почему-то заменил имя хоста на localhost, что и было передано в libmysql.
- в libmysql было передано правильное имя хоста, но при выводе сообщения об ошибке имя хоста по неизвестным причинам было заменено на "localhost". Как вариант, libmysql обратилась к DNS с запросом PTR, и DNS вернул запись типа "142.100.168.192.in-addr.arpa PTR localhost."...
follow-up: 11 comment:10 by , 7 years ago
Вот некоторые подробности:
- Пользователь вводит адрес сервера и нажимает "Вход"
- Связь с сервером есть - сервер пингуется с этой машины, более того - r830 запущенная на этой машине соединяется с сервером и работает.
- В сетевых настройках я какого-то "криминала" не заметил
============================================================================== Network Information ============================================================================== Host Name . . . . . . . . . . . . : mixyil Primary Dns Suffix . . . . . . . : Node Type . . . . . . . . . . . . : Hybrid IP Routing Enabled. . . . . . . . : No WINS Proxy Enabled. . . . . . . . : No Wireless LAN adapter Local Area Connection* 3: Media State . . . . . . . . . . . : Media disconnected Connection-specific DNS Suffix . : Description . . . . . . . . . . . : Microsoft Wi-Fi Direct Virtual Adapter Physical Address. . . . . . . . . : 3E-95-09-53-08-DD DHCP Enabled. . . . . . . . . . . : Yes Autoconfiguration Enabled . . . . : Yes Wireless LAN adapter Wi-Fi: Media State . . . . . . . . . . . : Media disconnected Connection-specific DNS Suffix . : Description . . . . . . . . . . . : Qualcomm Atheros QCA9377 Wireless Network Adapter Physical Address. . . . . . . . . : 3C-95-09-53-08-DD DHCP Enabled. . . . . . . . . . . : Yes Autoconfiguration Enabled . . . . : Yes Ethernet adapter Bluetooth Network Connection: Media State . . . . . . . . . . . : Media disconnected Connection-specific DNS Suffix . : Description . . . . . . . . . . . : Bluetooth Device (Personal Area Network) Physical Address. . . . . . . . . : 3C-95-09-53-08-DE DHCP Enabled. . . . . . . . . . . : Yes Autoconfiguration Enabled . . . . : Yes Ethernet adapter Ethernet: Connection-specific DNS Suffix . : Description . . . . . . . . . . . : Realtek PCIe GBE Family Controller Physical Address. . . . . . . . . : 54-E1-AD-0C-01-AF DHCP Enabled. . . . . . . . . . . : No Autoconfiguration Enabled . . . . : Yes Link-local IPv6 Address . . . . . : fe80::e192:8bd0:f9ac:2cd7%3(Preferred) IPv4 Address. . . . . . . . . . . : 192.168.100.177(Preferred) Subnet Mask . . . . . . . . . . . : 255.255.255.0 Default Gateway . . . . . . . . . : DHCPv6 IAID . . . . . . . . . . . : 55894445 DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-21-D2-24-72-54-E1-AD-0C-01-AF DNS Servers . . . . . . . . . . . : fec0:0:0:ffff::1%1 fec0:0:0:ffff::2%1 fec0:0:0:ffff::3%1 NetBIOS over Tcpip. . . . . . . . : Enabled Tunnel adapter isatap.{E659C6E4-6B05-48E0-8F11-364999369181}: Media State . . . . . . . . . . . : Media disconnected Connection-specific DNS Suffix . : Description . . . . . . . . . . . : Microsoft ISATAP Adapter Physical Address. . . . . . . . . : 00-00-00-00-00-00-00-E0 DHCP Enabled. . . . . . . . . . . : No Autoconfiguration Enabled . . . . : Yes
######ROUTE PRINT =========================================================================== Interface List 8...3e 95 09 53 08 dd ......Microsoft Wi-Fi Direct Virtual Adapter 7...3c 95 09 53 08 dd ......Qualcomm Atheros QCA9377 Wireless Network Adapter 4...3c 95 09 53 08 de ......Bluetooth Device (Personal Area Network) 3...54 e1 ad 0c 01 af ......Realtek PCIe GBE Family Controller 1...........................Software Loopback Interface 1 6...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter =========================================================================== IPv4 Route Table =========================================================================== Active Routes: Network Destination Netmask Gateway Interface Metric 127.0.0.0 255.0.0.0 On-link 127.0.0.1 306 127.0.0.1 255.255.255.255 On-link 127.0.0.1 306 127.255.255.255 255.255.255.255 On-link 127.0.0.1 306 192.168.100.0 255.255.255.0 On-link 192.168.100.177 276 192.168.100.177 255.255.255.255 On-link 192.168.100.177 276 192.168.100.255 255.255.255.255 On-link 192.168.100.177 276 224.0.0.0 240.0.0.0 On-link 127.0.0.1 306 224.0.0.0 240.0.0.0 On-link 192.168.100.177 276 255.255.255.255 255.255.255.255 On-link 127.0.0.1 306 255.255.255.255 255.255.255.255 On-link 192.168.100.177 276 =========================================================================== Persistent Routes: None
comment:11 by , 7 years ago
Replying to san:
r830 запущенная на этой машине соединяется с сервером и работает.
Хм... Это наводит на мысль, что виновата все-таки PJSIP. В r853 вместо самописного (и кривого) парсинга введенного URI стали использовать pjsip_parse_uri()...
Странность в том, что в коде PJSIP строка "localhost" встречается только в самых безобидных местах (в комментариях, каких-то тестах и т.п.). В рабочем коде я "localhost" не обнаружил, поэтому полагал, что вряд ли оно могло его вернуть...
comment:12 by , 6 years ago
Саша, если проблема у тебя воспроизводится, хочется увидель запись в лог-файле "connecting to MySQL server xxx as user yyy". Или, если баг не воспроизводится, закрыть тикет как не воспроизводимый.
comment:13 by , 6 years ago
Resolution: | → worksforme |
---|---|
Status: | new → closed |
Закрываю, у меня не воспроизводилось.
follow-up: 18 comment:14 by , 5 years ago
Resolution: | worksforme |
---|---|
Status: | closed → reopened |
Воспроизвелось у меня
При попытке подключения пользователя 1@192.168.0.63 программа выдала ошибку: Ошибка соединения с базой данных: Can't connect to MySQL server on 'localhost' (10061).
Сетевые настройки компьютера
Адаптер Ethernet Ethernet: DNS-суффикс подключения . . . . . : IPv4-адрес. . . . . . . . . . . . : 192.168.0.90 Маска подсети . . . . . . . . . . : 255.255.255.0 Основной шлюз. . . . . . . . . : 192.168.0.13 C:\windows\system32>route print =========================================================================== Список интерфейсов 5...c4 65 16 34 16 6d ......Intel(R) Ethernet Connection (7) I219-LM 1...........................Software Loopback Interface 1 =========================================================================== IPv4 таблица маршрута =========================================================================== Активные маршруты: Сетевой адрес Маска сети Адрес шлюза Интерфейс Метрика 0.0.0.0 0.0.0.0 192.168.0.13 192.168.0.90 35 127.0.0.0 255.0.0.0 On-link 127.0.0.1 331 127.0.0.1 255.255.255.255 On-link 127.0.0.1 331 127.255.255.255 255.255.255.255 On-link 127.0.0.1 331 192.168.0.0 255.255.255.0 On-link 192.168.0.90 291 192.168.0.90 255.255.255.255 On-link 192.168.0.90 291 192.168.0.255 255.255.255.255 On-link 192.168.0.90 291 224.0.0.0 240.0.0.0 On-link 127.0.0.1 331 224.0.0.0 240.0.0.0 On-link 192.168.0.90 291 255.255.255.255 255.255.255.255 On-link 127.0.0.1 331 255.255.255.255 255.255.255.255 On-link 192.168.0.90 291 ===========================================================================
Содержимое логов:
main
2020.01.21 09:24:08.570 [INFO ] Программа запущенна, MC04-Dispatcher-v1.0-r1055 2020.01.21 09:24:08.571 [INFO ] Конфигурация загружена 2020.01.21 09:24:08.571 [INFO ] Начат процесс подключения к FreeSwitch серверу 2020.01.21 09:24:34.626 [ERROR ] Ошибка соединения с базой данных: Can't connect to MySQL server on 'localhost' (10061) 2020.01.21 09:25:30.484 [INFO ] Выход из программы, подключения к Freeswitch серверу не было
debug
2020.01.21 09:24:08.324 [DEBUG ] Loading config from C:/Users/admin/AppData/Local/MC04Dispatcher.xml 2020.01.21 09:24:30.039 [DEBUG ] sip_endpoint.c .Creating endpoint instance... 2020.01.21 09:24:30.039 [DEBUG ] pjlib .select() I/O Queue created (054AC0A8) 2020.01.21 09:24:30.039 [DEBUG ] sip_endpoint.c .Module "mod-msg-print" registered 2020.01.21 09:24:30.040 [DEBUG ] sip_transport. .Transport manager created. 2020.01.21 09:24:30.040 [DEBUG ] pjsua_core.c .PJSUA state changed: NULL --> CREATED 2020.01.21 09:24:31.090 [INFO ] pjsua_core.c .pjsua version 2.6 for initialized 2020.01.21 09:24:31.098 [DEBUG ] local IPv4 address is 192.168.0.90 2020.01.21 09:24:31.098 [ERROR ] error getting local IPv6 address 2020.01.21 09:24:32.609 [DEBUG ] connecting to MySQL server "" as user "sip"
Конфиг
<?xml version="1.0" encoding="UTF-8"?> <root> <LastStart> <LoginDialog MonitorID="0" xPos="640" yPos="200"/> <MainWindow WindowState="2" xPos="-8" yPos="-8" WWindow="1920" HWindow="1017"/> </LastStart> <Environment> <ShowLog>true</ShowLog> <ShowCursor>true</ShowCursor> <ShowNumRegistered>true</ShowNumRegistered> <PhoneBookPath>phonebook.txt</PhoneBookPath> <PhoneBookFontSize>14</PhoneBookFontSize> </Environment> <Connection> <TelephoneGateway>pstn</TelephoneGateway> <AlarmDelay>30</AlarmDelay> <CallTimeout>120</CallTimeout> <SIPClientReregistration>3600</SIPClientReregistration> <ExternalUA>false</ExternalUA> <BindAddress Auto="true"/> <SIPTransport>0</SIPTransport> <SRTPMode>0</SRTPMode> </Connection> <Conference> <SwitchToConference>auto</SwitchToConference> <PrimaryConferenceDisplayName></PrimaryConferenceDisplayName> <NewConferencePrefix>конференция-</NewConferencePrefix> <DisplayDisconnected>5</DisplayDisconnected> <DisplayFailedCalls>5</DisplayFailedCalls> <PrimaryConferenceId>0</PrimaryConferenceId> </Conference> <Mixer> <InputSoundDevice InputSoundDeviceName="Микрофон (2- Chat 50)" InputSoundDeviceVolume="100"/> <OutputSoundDevice OutputSoundDeviceName="Динамики (2- Chat 50)" OutputSoundDeviceVolume="100"/> <SystemSoundDevice SystemSoundDeviceName="Динамики (2- Chat 50)" SystemSoundDeviceVolume="100"/> <AlarmSound>true</AlarmSound> </Mixer> <Users> <User sip-uri="1@192.168.0.63"/> <UserFileTemplate>/etc/freeswitch/directory/default/%1.xml</UserFileTemplate> </Users> <PstnDialHistory/> </root>
comment:15 by , 5 years ago
Странно что ещё недавно, та же программа стой же машины подключалась успешно к 0.63 тем же пользователем и работала...
Не понимаю пока что же изменилось. Я менял сетевые настройки, но затем вернул их обратно.
comment:16 by , 5 years ago
После нажатия кнопки Вход, ловлю сниффером несколько пакетов в направлении ::1 -> ::1 и 127.0.0.1 -> 127.0.0.1 на порт 3306
comment:17 by , 5 years ago
Не понимаю пока что же изменилось.
Алексей. я нашёл разницу.
Т.к. пользователю IPv6 был не нужен, я его отключил, в настройках сетевого адаптера и после этого программа стала выдавать ошибку. Сейчас снова включил IPv6 и программа успешно подключилась к БД.
comment:18 by , 5 years ago
Replying to san:
Воспроизвелось у меня
Попробуй, пожалуйста, воспроизвести, вводя sip:1@192.168.0.63
и <sip:1@192.168.0.63>
comment:19 by , 5 years ago
Для обоих экпериментов, попытка подключения заканчивается ошибкой, лог одинаковый:
2020.01.21 12:44:19.279 [DEBUG ] Loading config from C:/Users/admin/AppData/Local/MC04Dispatcher.xml 2020.01.21 12:44:51.509 [DEBUG ] sip_endpoint.c .Creating endpoint instance... 2020.01.21 12:44:51.509 [DEBUG ] pjlib .select() I/O Queue created (0589B910) 2020.01.21 12:44:51.509 [DEBUG ] sip_endpoint.c .Module "mod-msg-print" registered 2020.01.21 12:44:51.509 [DEBUG ] sip_transport. .Transport manager created. 2020.01.21 12:44:51.509 [DEBUG ] pjsua_core.c .PJSUA state changed: NULL --> CREATED 2020.01.21 12:44:52.560 [INFO ] pjsua_core.c .pjsua version 2.6 for initialized 2020.01.21 12:44:52.560 [DEBUG ] local IPv4 address is 192.168.0.90 2020.01.21 12:44:52.561 [ERROR ] error getting local IPv6 address 2020.01.21 12:44:54.085 [DEBUG ] connecting to MySQL server "" as user "sip"
follow-up: 21 comment:20 by , 5 years ago
Алексей. попробуй у себя воспроизвести в условиях
[ERROR ] error getting local IPv6 address
Я подозреваю, что описываемый баг воспроизведётся.
follow-up: 22 comment:21 by , 5 years ago
Replying to san:
Алексей. попробуй у себя воспроизвести в условиях
[ERROR ] error getting local IPv6 address
Я подозреваю, что описываемый баг воспроизведётся.
В этих условиях он у меня просто падает... :(
comment:22 by , 5 years ago
Replying to alx:
В этих условиях он у меня просто падает... :(
Как оказалось, он падает, когда пытается получить имя хоста после парсинга логина. Наверное можно считать, что проблема все-таки воспроизвелась, хоть и проявляется немного иначе...
Replying to san:
Справедливости ради отмечу, что если 192.168.100.142 - локальный адрес, то в попытке соединения с localhost ничего странного нет...