Re: modem-manager fails to reconnect

2010-09-28 Thread Dan Williams
On Fri, 2010-09-24 at 20:14 -0300, José Queiroz wrote:
> Hi,
> 
> I've noticed a strange behavior with my 3g dongle (Onda MSA405 HS /
> 19d2:0037). When I plug it, it connects with ease. After some time, if
> I disconnect it and try to reconnect, it fails, and I have to
> unplug/plug again the device or restart modem-manager process to get
> the connection back.

That's interesting, and something we should probably handle.  We should
detect NO CARRIER on secondary ports and then tell NetworkManager that
we've terminated the connection so that it disconnects PPP.

> I've turned on loggin on modem-manager, and I saw that when it states
> that the connection transitioned from "connected -> disconnecting" and
> from "disconnecting -> registered", I can reconnect it. But sometimes,
> it transitions from "connected -> disconnecting" and then
> "disconnecting -> connect". When this happens, I cannot reconnect
> unless unplug or restart modem-manager.

Should fix that too.  What's happening here is that ModemManager tries
to disconnect the port by breaking into the serial stream, but clearly
that's not working.  Since that wasn't successful (it didn't get a
response) it reverts to the previous state (which is connected).  We'd
need to put some more debugging in to detect where exactly it fails and
try to figure out what to do about that.

Dan

> This sometimes happens in the first reconnection, sometimes it takes
> some reconnections to happen, but sooner or later will happen.
> 
> I'm using:
> Kubuntu Lucid 10.04, 
> NetworkManager 0.8.1+git.20100810t184654.ab580f4-0ubuntu3~nmt3~lucid
> modem-manager 0.4+git.20100922t210758.618dc06-0ubuntu1~nmt1~lucid
> 
> I also saw that in a normal disconnect, ttyUSB2 (data port) and
> ttyUSB1 send a "NO CARRIER" message; when the disconnection fails,
> only ttyUSB1 says "NO CARRIER".
> 
> This is a piece of modem-manager debug. I can consistently reproduce
> the symptom, if needed.
> 
> ** (modem-manager:11224): DEBUG: <1285364689.581337> (ttyUSB2):
> network_mode => 8
> ** (modem-manager:11224): DEBUG: <1285364689.581337> (ttyUSB2):
> username => "tim"
> ** (modem-manager:11224): DEBUG: <1285364689.581337> (ttyUSB2): number
> => "*99#"
> ** (modem-manager:11224): DEBUG: <1285364689.581337> (ttyUSB2): apn =>
> "www.tim.com.br"
> ** (modem-manager:11224): DEBUG: <1285364689.581337> (ttyUSB2):
> allowed_mode => 4
> ** (modem-manager:11224): DEBUG: <1285364689.581337> (ttyUSB2):
> password => "tim"
> ** (modem-manager:11224): DEBUG: <1285364689.581451> (ttyUSB2): simple
> connect state 0
> ** (modem-manager:11224): DEBUG: <1285364689.581492> (ttyUSB2): simple
> connect state 2
> ** (modem-manager:11224): DEBUG: <1285364689.581541> (ttyUSB2): -->
> 'AT+CREG?'
> ** (modem-manager:11224): DEBUG: <1285364689.591677> (ttyUSB2): <--
> '+CREG: 1,1OK'
> ** (modem-manager:11224): DEBUG: <1285364689.591776> (ttyUSB2): simple
> connect state 4
> ** (modem-manager:11224): DEBUG: <1285364689.591821> (ttyUSB2): -->
> 'AT+CGDCONT?'
> ** (modem-manager:11224): DEBUG: <1285364689.613745> (ttyUSB2): <--
> '+CGDCONT:
> 1,"IP","www.tim.com.br","0.0.0.0",0,0+CGDCONT:
> 2,"IP","www.tim.com.br","0.0.0.0",0,0+CGDCONT:
> 3,"IP","bandalarga.claro.com.br","0.0.0.0",0,0+CGDCONT:
> 4,"IP","tim.br","0.0.0.0",0,0OK'
> ** (modem-manager:11224): DEBUG: <1285364689.613907> (ttyUSB2): simple
> connect state 5
> ** (modem-manager:11224): DEBUG: <1285364689.613961>
> Modem /org/freedesktop/ModemManager/Modems/0: state changed
> (registered -> connecting)
> ** (modem-manager:11224): DEBUG: <1285364689.614001> (ttyUSB2): -->
> 'ATD*99***1#'
> ** (modem-manager:11224): DEBUG: <1285364689.634906> (ttyUSB2): <--
> 'CONNECT 115200'
> ** (modem-manager:11224): DEBUG: <1285364689.635012> (ttyUSB2): port
> now connected
> ** (modem-manager:11224): DEBUG: <1285364689.635055>
> Modem /org/freedesktop/ModemManager/Modems/0: state changed
> (connecting -> connected)
> ** (modem-manager:11224): DEBUG: <1285364689.635098> (ttyUSB2): simple
> connect state 6
> ** (modem-manager:11224): DEBUG: (net/ppp0): could not get port's
> parent device
> ** (modem-manager:11224): DEBUG: <1285364691.463726> (ttyUSB1): <--
> '+ZPASR: "HSDPA"'
> ** (modem-manager:11224): DEBUG: <1285364701.3719> (ttyUSB1): --> 'AT
> +CSQ'
> ** (modem-manager:11224): DEBUG: <1285364701.13901> (ttyUSB1): <--
> '+CSQ: 16,99OK'
> ** (modem-manager:11224): DEBUG: <1285364701.14020> (ttyUSB1): --> 'AT
> +ZPAS?'
> ** (modem-manager:11224): DEBUG: <1285364701.34469> (ttyUSB1): <--
> '+ZPAS: "HSDPA","CS_PS"OK'
> ** (modem-manager:11224): DEBUG: <1285364708.9169>
> Modem /org/freedesktop/ModemManager/Modems/0: state changed (connected
> -> disconnecting)
> ** (modem-manager:11224): DEBUG: <1285364708.9302> (ttyUSB1): --> 'AT
> +CGACT=0,1'
> ** (modem-manager:11224): DEBUG: <1285364708.42966> (ttyUSB2):
> network_mode => 8
> ** (modem-manager:11224): DEBUG: <1285364708.42966> (ttyUSB2):
> username => "tim"
> ** (modem-manager:11224): DEBUG: <1285364708.42966> (ttyUSB2): num

modem-manager fails to reconnect

2010-09-24 Thread José Queiroz
Hi,

I've noticed a strange behavior with my 3g dongle (Onda MSA405 HS /
19d2:0037). When I plug it, it connects with ease. After some time, if I
disconnect it and try to reconnect, it fails, and I have to unplug/plug
again the device or restart modem-manager process to get the connection
back.

I've turned on loggin on modem-manager, and I saw that when it states that
the connection transitioned from "connected -> disconnecting" and from
"disconnecting -> registered", I can reconnect it. But sometimes, it
transitions from "connected -> disconnecting" and then "disconnecting ->
connect". When this happens, I cannot reconnect unless unplug or restart
modem-manager.

This sometimes happens in the first reconnection, sometimes it takes some
reconnections to happen, but sooner or later will happen.

I'm using:
Kubuntu Lucid 10.04,
NetworkManager 0.8.1+git.20100810t184654.ab580f4-0ubuntu3~nmt3~lucid
modem-manager 0.4+git.20100922t210758.618dc06-0ubuntu1~nmt1~lucid

I also saw that in a normal disconnect, ttyUSB2 (data port) and ttyUSB1 send
a "NO CARRIER" message; when the disconnection fails, only ttyUSB1 says "NO
CARRIER".

This is a piece of modem-manager debug. I can consistently reproduce the
symptom, if needed.

** (modem-manager:11224): DEBUG: <1285364689.581337> (ttyUSB2): network_mode
=> 8
** (modem-manager:11224): DEBUG: <1285364689.581337> (ttyUSB2): username =>
"tim"
** (modem-manager:11224): DEBUG: <1285364689.581337> (ttyUSB2): number =>
"*99#"
** (modem-manager:11224): DEBUG: <1285364689.581337> (ttyUSB2): apn => "
www.tim.com.br"
** (modem-manager:11224): DEBUG: <1285364689.581337> (ttyUSB2): allowed_mode
=> 4
** (modem-manager:11224): DEBUG: <1285364689.581337> (ttyUSB2): password =>
"tim"
** (modem-manager:11224): DEBUG: <1285364689.581451> (ttyUSB2): simple
connect state 0
** (modem-manager:11224): DEBUG: <1285364689.581492> (ttyUSB2): simple
connect state 2
** (modem-manager:11224): DEBUG: <1285364689.581541> (ttyUSB2): -->
'AT+CREG?'
** (modem-manager:11224): DEBUG: <1285364689.591677> (ttyUSB2): <--
'+CREG: 1,1OK'
** (modem-manager:11224): DEBUG: <1285364689.591776> (ttyUSB2): simple
connect state 4
** (modem-manager:11224): DEBUG: <1285364689.591821> (ttyUSB2): -->
'AT+CGDCONT?'
** (modem-manager:11224): DEBUG: <1285364689.613745> (ttyUSB2): <--
'+CGDCONT: 1,"IP","www.tim.com.br","0.0.0.0",0,0+CGDCONT:
2,"IP","www.tim.com.br","0.0.0.0",0,0+CGDCONT: 3,"IP","
bandalarga.claro.com.br","0.0.0.0",0,0+CGDCONT: 4,"IP","tim.br
","0.0.0.0",0,0OK'
** (modem-manager:11224): DEBUG: <1285364689.613907> (ttyUSB2): simple
connect state 5
** (modem-manager:11224): DEBUG: <1285364689.613961> Modem
/org/freedesktop/ModemManager/Modems/0: state changed (registered ->
connecting)
** (modem-manager:11224): DEBUG: <1285364689.614001> (ttyUSB2): -->
'ATD*99***1#'
** (modem-manager:11224): DEBUG: <1285364689.634906> (ttyUSB2): <--
'CONNECT 115200'
** (modem-manager:11224): DEBUG: <1285364689.635012> (ttyUSB2): port now
connected
** (modem-manager:11224): DEBUG: <1285364689.635055> Modem
/org/freedesktop/ModemManager/Modems/0: state changed (connecting ->
connected)
** (modem-manager:11224): DEBUG: <1285364689.635098> (ttyUSB2): simple
connect state 6
** (modem-manager:11224): DEBUG: (net/ppp0): could not get port's parent
device
** (modem-manager:11224): DEBUG: <1285364691.463726> (ttyUSB1): <--
'+ZPASR: "HSDPA"'
** (modem-manager:11224): DEBUG: <1285364701.3719> (ttyUSB1): -->
'AT+CSQ'
** (modem-manager:11224): DEBUG: <1285364701.13901> (ttyUSB1): <--
'+CSQ: 16,99OK'
** (modem-manager:11224): DEBUG: <1285364701.14020> (ttyUSB1): -->
'AT+ZPAS?'
** (modem-manager:11224): DEBUG: <1285364701.34469> (ttyUSB1): <--
'+ZPAS: "HSDPA","CS_PS"OK'
** (modem-manager:11224): DEBUG: <1285364708.9169> Modem
/org/freedesktop/ModemManager/Modems/0: state changed (connected ->
disconnecting)
** (modem-manager:11224): DEBUG: <1285364708.9302> (ttyUSB1): -->
'AT+CGACT=0,1'
** (modem-manager:11224): DEBUG: <1285364708.42966> (ttyUSB2): network_mode
=> 8
** (modem-manager:11224): DEBUG: <1285364708.42966> (ttyUSB2): username =>
"tim"
** (modem-manager:11224): DEBUG: <1285364708.42966> (ttyUSB2): number =>
"*99#"
** (modem-manager:11224): DEBUG: <1285364708.42966> (ttyUSB2): apn => "
www.tim.com.br"
** (modem-manager:11224): DEBUG: <1285364708.42966> (ttyUSB2): allowed_mode
=> 4
** (modem-manager:11224): DEBUG: <1285364708.42966> (ttyUSB2): password =>
"tim"
** (modem-manager:11224): DEBUG: <1285364708.43083> (ttyUSB2): simple
connect state 0
** (modem-manager:11224): DEBUG: <1285364708.43126> (ttyUSB2): simple
connect state 2
** (modem-manager:11224): DEBUG: <1285364710.903746> (ttyUSB2): <--
'+ZPASR: "UMTS"'
** (modem-manager:11224): DEBUG: <1285364710.903941> (ttyUSB1): <--
'+ZPASR: "UMTS"'
** (modem-manager:11224): DEBUG: <1285364710.925500> (ttyUSB1): <--
'OK'
** (modem-manager:11224): DEBUG: <1285364710.927614> (ttyUSB2): <--
'NO CARRIER'
** (modem-manager:11224): DEBUG: Got failure code 3: No carrier
** (modem-manager:11224): D