NM 0.7.1 leaves open fd of /dev/tts/USB2 after disconnect
- From: Valmantas Palikša <walmis gmail com>
- To: networkmanager-list gnome org
- Subject: NM 0.7.1 leaves open fd of /dev/tts/USB2 after disconnect
- Date: Wed, 24 Jun 2009 22:26:42 +0300
Done some digging and found out that NM opens the device twice. This
very often leads to kernel panics here if the device connects multiple
times or is pluged/unpluged when the descriptor is left open. Probably
some bug in the kernel somewhere..
Kernel: 2.6.30
NM: 0.7.1
Modem: ZTE MF633 (0x19d2 0x0031)
My temporary patch:
--- nm-gsm-device.old.c 2009-04-13 01:29:59.000000000 +0300
+++ nm-gsm-device.c 2009-06-24 22:17:58.039782740 +0300
@@ -823,6 +823,11 @@
setting = NM_SETTING_SERIAL (gsm_device_get_setting (NM_GSM_DEVICE
(device), NM_TYPE_SETTING_SERIAL));
+ if(NM_GSM_DEVICE_GET_PRIVATE (device)->init_ok) {
+ nm_warning("BUG: Closing previous connection");
+ nm_serial_device_close (serial_device);
+ }
+
if (!nm_serial_device_open (serial_device, setting)) {
*reason = NM_DEVICE_STATE_REASON_CONFIG_FAILED;
return NM_ACT_STAGE_RETURN_FAILURE;
Also the log:
NetworkManager: <info> (tts/USB2): device state change: 2 -> 3
NetworkManager: <info> (tts/USB1): found serial port (udev:GSM hal:)
NetworkManager: <info> (tts/USB1): deferring until all ports found
NetworkManager: <info> Activation (tts/USB2) starting connection 'Omni
Connect'
NetworkManager: <info> (tts/USB2): device state change: 3 -> 4
NetworkManager: <info> Activation (tts/USB2) Stage 1 of 5 (Device
Prepare) scheduled...
NetworkManager: <info> Activation (tts/USB2) Stage 1 of 5 (Device
Prepare) started...
NetworkManager: <WARN> real_act_stage1_prepare(): Stage1 0xf64010 0
NetworkManager: <debug> [1245870737.912363] nm_serial_device_open():
(tts/USB2) opening device...
NetworkManager: <info> Activation (tts/USB2) Stage 1 of 5 (Device
Prepare) complete.
NetworkManager: <info> Re-checking deferred serial ports
NetworkManager: <info> (tts/USB1): new Modem device (driver: 'option')
NetworkManager: <info> (tts/USB1): exported
as /org/freedesktop/Hal/devices/usb_device_19d2_31_1234567890ABCDEF_if1_serial_usb_0
NetworkManager: <debug> [1245870738.017629] nm_serial_debug(): Sending:
'ATZ E0 V1 X4 &C1 +FCLASS=0
'
NetworkManager: <debug> [1245870738.075007] nm_serial_debug(): Got: 'ATZ
E0 V1 X4 &C1 +FCLASS=0'
NetworkManager: <debug> [1245870738.086523] nm_serial_debug(): Got: 'ATZ
E0 V1 X4 &C1 +FCLASS=0
ERROR
'
NetworkManager: <WARN> init_done(): Trying alternate modem
initialization (1)
NetworkManager: <debug> [1245870739.001616] nm_serial_debug(): Sending:
'ATZ E0 V1 &C1
'
NetworkManager: <debug> [1245870739.046540] nm_serial_debug(): Got: '
ERROR
'
NetworkManager: <WARN> init_done(): Trying alternate modem
initialization (2)
NetworkManager: <debug> [1245870740.001537] nm_serial_debug(): Sending:
'AT&F E0 V1 X4 &C1 +FCLASS=0
'
NetworkManager: <debug> [1245870740.073194] nm_serial_debug(): Got: '
ERROR
'
NetworkManager: <WARN> init_done(): Trying alternate modem
initialization (3)
NetworkManager: <debug> [1245870741.001280] nm_serial_debug(): Sending:
'AT&F E0 V1 &C1
'
NetworkManager: <debug> [1245870741.043247] nm_serial_debug(): Got: '
ERROR
'
NetworkManager: <WARN> init_done(): Trying alternate modem
initialization (4)
NetworkManager: <info> (tts/USB1): device state change: 1 -> 2
NetworkManager: <info> (tts/USB1): deactivating device (reason: 2).
NetworkManager: nm_system_device_flush_ip4_routes_with_iface: assertion
`iface_idx >= 0' failed
NetworkManager: nm_system_device_flush_ip4_addresses_with_iface:
assertion `iface_idx >= 0' failed
NetworkManager: <debug> [1245870742.008830] nm_serial_debug(): Sending:
'AT&F E0 V1
'
NetworkManager: <info> (tts/USB1): device state change: 2 -> 3
NetworkManager: <debug> [1245870742.043197] nm_serial_debug(): Got: '
OK
'
NetworkManager: <debug> [1245870742.043300] nm_serial_debug(): Sending:
'AT+CPIN?
'
NetworkManager: <debug> [1245870742.073198] nm_serial_debug(): Got: '
+CPIN: SIM PIN
OK
'
NetworkManager: <info> (tts/USB2): GSM pin secret required
NetworkManager: <info> (tts/USB2): device state change: 4 -> 6
NetworkManager: <info> Activation (tts/USB2) Stage 1 of 5 (Device
Prepare) scheduled...
NetworkManager: <info> Activation (tts/USB2) Stage 1 of 5 (Device
Prepare) started...
NetworkManager: <info> (tts/USB2): device state change: 6 -> 4
NetworkManager: <WARN> real_act_stage1_prepare(): Stage1 0xf64010 1
NetworkManager: <WARN> real_act_stage1_prepare(): BUG: Closing previous
connection
NetworkManager: <debug> [1245870742.083547] nm_serial_device_close():
Closing device 'tts/USB2'
NetworkManager: <debug> [1245870742.085062] nm_serial_device_open():
(tts/USB2) opening device...
NetworkManager: <info> Activation (tts/USB2) Stage 1 of 5 (Device
Prepare) complete.
NetworkManager: <debug> [1245870742.189500] nm_serial_debug(): Sending:
'ATZ E0 V1 X4 &C1 +FCLASS=0
'
NetworkManager: <debug> [1245870742.263205] nm_serial_debug(): Got: '
ERROR
'
NetworkManager: <WARN> init_done(): Trying alternate modem
initialization (1)
NetworkManager: <debug> [1245870744.000128] nm_serial_debug(): Sending:
'ATZ E0 V1 &C1
'
NetworkManager: <debug> [1245870744.043202] nm_serial_debug(): Got: '
ERROR
'
NetworkManager: <WARN> init_done(): Trying alternate modem
initialization (2)
NetworkManager: <debug> [1245870745.001327] nm_serial_debug(): Sending:
'AT&F E0 V1 X4 &C1 +FCLASS=0
'
NetworkManager: <debug> [1245870745.073348] nm_serial_debug(): Got: '
ERROR
'
NetworkManager: <WARN> init_done(): Trying alternate modem
initialization (3)
NetworkManager: <debug> [1245870746.001424] nm_serial_debug(): Sending:
'AT&F E0 V1 &C1
'
NetworkManager: <debug> [1245870746.046530] nm_serial_debug(): Got: '
ERROR
'
NetworkManager: <WARN> init_done(): Trying alternate modem
initialization (4)
NetworkManager: <debug> [1245870747.001170] nm_serial_debug(): Sending:
'AT&F E0 V1
'
NetworkManager: <debug> [1245870747.036539] nm_serial_debug(): Got: '
OK
'
NetworkManager: <debug> [1245870747.036647] nm_serial_debug(): Sending:
'AT+CPIN?
'
NetworkManager: <debug> [1245870747.066536] nm_serial_debug(): Got: '
+CPIN: SIM PIN
OK
'
NetworkManager: <debug> [1245870747.066661] nm_serial_debug(): Sending:
'AT+CPIN="6486"
'
NetworkManager: <debug> [1245870747.206678] nm_serial_debug(): Got: '
OK
'
NetworkManager: <debug> [1245870747.206787] nm_serial_debug(): Sending:
'AT&F E0 V1
'
NetworkManager: <debug> [1245870747.239868] nm_serial_debug(): Got: '
OK
'
NetworkManager: <info> (tts/USB2): powering up...
NetworkManager: <debug> [1245870747.239981] nm_serial_debug(): Sending:
'AT+CFUN=1
'
NetworkManager: <debug> [1245870747.273203] nm_serial_debug(): Got: '
OK
'
NetworkManager: <debug> [1245870747.273295] nm_serial_debug(): Sending:
'AT+CGMM
'
NetworkManager: <debug> [1245870747.303212] nm_serial_debug(): Got: '
MF633
OK
'
NetworkManager: <debug> [1245870747.303328] nm_serial_debug(): Sending:
'AT+CREG?
'
NetworkManager: <debug> [1245870747.333206] nm_serial_debug(): Got: '
+CREG: 0,2
OK
'
NetworkManager: <info> Searching for a network...
NetworkManager: <debug> [1245870749.000070] nm_serial_debug(): Sending:
'AT+CREG?
'
NetworkManager: <debug> [1245870749.083204] nm_serial_debug(): Got: '
+CREG: 0,2
OK
'
NetworkManager: <info> Searching for a network...
NetworkManager: <debug> [1245870750.001634] nm_serial_debug(): Sending:
'AT+CREG?
'
NetworkManager: <debug> [1245870750.023357] nm_serial_debug(): Got: '
+ZDONR: "OMT",246,1,"CS_ONLY","ROAM_OFF"
+ZPASR: "UMTS"
'
NetworkManager: <debug> [1245870750.036873] nm_serial_debug(): Got: '
+ZDONR: "OMT",246,1,"CS_ONLY","ROAM_OFF"
+ZPASR: "UMTS"
+CREG: 0,1
OK
'
NetworkManager: <info> Registered on Home network
NetworkManager: <debug> [1245870750.037021] nm_serial_debug(): Sending:
'AT+COPS?
'
NetworkManager: <debug> [1245870750.066538] nm_serial_debug(): Got: '
+COPS: 0,1,"OMT",2
OK
'
NetworkManager: <info> Associated with network: +COPS: 0,1,"OMT",2
NetworkManager: <debug> [1245870750.066685] nm_serial_debug(): Sending:
'ATDT*99#
'
NetworkManager: <debug> [1245870750.096538] nm_serial_debug(): Got: '
CONNECT
'
NetworkManager: <info> Connected, Woo!
NetworkManager: <info> Activation (tts/USB2) Stage 2 of 5 (Device
Configure) scheduled...
NetworkManager: <info> Activation (tts/USB2) Stage 2 of 5 (Device
Configure) starting...
NetworkManager: <info> (tts/USB2): device state change: 4 -> 5
NetworkManager: <info> Starting pppd connection
NetworkManager: <debug> [1245870750.106860] nm_ppp_manager_start():
Command line: /usr/sbin/pppd nodetach lock nodefaultroute tts/USB2
noipdefault noauth refuse-eap refuse-pap refuse-chap refuse-mschap
refuse-mschap-v2 usepeerdns lcp-echo-failure 0 lcp-echo-interval 0
ipparam /org/freedesktop/NetworkManager/PPP/0
plugin /usr/lib/pppd/2.4.4/nm-pppd-plugin.so
Plugin /usr/lib/pppd/2.4.4/nm-pppd-plugin.so loaded.
NetworkManager: <debug> [1245870750.121755] nm_ppp_manager_start(): ppp
started with pid 27105
Using interface ppp0
Connect: ppp0 <--> /dev/tts/USB2
NetworkManager: <info> Activation (tts/USB2) Stage 2 of 5 (Device
Configure) complete.
NetworkManager: <info> (tts/USB2): device state change: 5 -> 6
NetworkManager: <info> (tts/USB2): device state change: 6 -> 7
Could not determine remote IP address: defaulting to 10.64.64.64
Cannot determine ethernet address for proxy ARP
local IP address 10.123.21.99
remote IP address 10.64.64.64
primary DNS address 10.11.12.13
secondary DNS address 10.11.12.14
NetworkManager: <info> PPP manager(IP Config Get) reply received.
NetworkManager: <info> Activation (tts/USB2) Stage 4 of 5 (IP Configure
Get) scheduled...
NetworkManager: <info> Activation (tts/USB2) Stage 4 of 5 (IP Configure
Get) started...
NetworkManager: <info> Activation (tts/USB2) Stage 5 of 5 (IP Configure
Commit) scheduled...
NetworkManager: <info> Activation (tts/USB2) Stage 4 of 5 (IP Configure
Get) complete.
NetworkManager: <info> Activation (tts/USB2) Stage 5 of 5 (IP Configure
Commit) started...
NetworkManager: <info> (tts/USB2): device state change: 7 -> 8
NetworkManager: <info> Policy set 'Omni Connect' (ppp0) as default for
routing and DNS.
NetworkManager: <info> Activation (tts/USB2) successful, device
activated.
NetworkManager: <info> Activation (tts/USB2) Stage 5 of 5 (IP Configure
Commit) complete.
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]