Hi Henrik, Removing all variables from the LOGD calls did not change anything.
After multiple experiments with the placement of LOGD's, I believe it is crashing whenever property_get is executed. Can never get by that: len = property_get("net.gprs.local-ip",response[2], NULL); I printed out response[0], [1], and [2], before this call and they look correct.. Mike On Mon, May 17, 2010 at 8:06 AM, Uhrenfeldt Henrik < henrik.uhrenfe...@ixonos.com> wrote: > Hi Mike, > > I still think the RIL crashes if you get the two lines: > > E/RILJ ( 929): Hit EOS reading message length > I/RILJ ( 929): Disconnected from 'rild' socket > > The log message is confusing because the java process somehow finishes its > ongoing function call through JNI when the lowlevel RIL crashes. If changing > the invalid index did not do the trick, then we have to look for something > else. Try modifying your debug line not to reference any variables at all - > we need to make sure that RIL does not crash.. > > Regarding the setting of local-ip in ip-down, I thought about the very same > thing, but you end up in trouble waiting for local-ip being set if fx. ppp > fails to initialize (this happens in my setup from time to time). In that > case you need to wait for both ppp exit code AND local-ip. Thus I ended up > making one single property which was being set from both ppp-init script > (after PPP exit) as well as ip-up and ip-down. > > - Henrik > > -----Original Message----- > From: M&M stich [mailto:mstic...@gmail.com] > Sent: 17. maj 2010 14:57 > To: Uhrenfeldt Henrik; android-porting > Subject: Re: Data connection via cell modem (GPRS) > > Yes, I noticed that shortly after I sent the message. Fixing it did not > change anything. > > It appears that readRilMessage in RIL.java is executing before the response > is sent. I don't understand why this should happen. > > I was going to clear the net.gprs.local-ip property in the ip-down script > so that it would work multiple times. Then it could be reset in the ip-up > script like it currently is. Would that not work similarly to another > property? > > Thanks much for the help. > Mike > > > On Mon, May 17, 2010 at 2:27 AM, Uhrenfeldt Henrik < > henrik.uhrenfe...@ixonos.com> wrote: > > > Hi Stich, > > Please keep the list on copy - then everybody will learn from this > :-) > > Anyway, I think your problem is in the line: > > > LOGD(" --- PPPD started successfully; IP local : %s Retry count : > %d",response[3],retry); > > > In fact response[] is only three elements big, and you refer to > index 3 instead of 2. I bet the code successfully exits the loop and > attempts to execute the debug print, hits a NULL pointer and the low-level > part of RIL crashes. This is confirmed by the debug lines > > > E/RILJ ( 929): Hit EOS reading message length > I/RILJ ( 929): Disconnected from 'rild' socket > > > I have crashed the low-level RIL many times, and every time I get > this message :-) > > I bet that if you change response[3] to response[2] it will be > working. That being said this will work only once, since next time you > attempt connection, local-ip will be set already. I introduced yet another > property which I set to a kind of state information (ie. > down/initializing/up). Again this synchronization through properties really > is the worst part of this setup, and I have been able to stabilize it > 100%... > > - Henrik > > > -----Original Message----- > From: M&M stich [mailto:mstic...@gmail.com] > Sent: 14. maj 2010 21:44 > To: Robert Greenwalt; Uhrenfeldt Henrik > Subject: Data connection via cell modem (GPRS) > > Made some progress. When SETUP_DATA_CALL is called, my ril starts > the pppd via ctl.start, and that seems to work. The deamon does seem to > start and the associated properties seem to be set. (Doing a "start service" > from the console works) I've put log messages at each step, when it > starts, when it waits for the local-ip property to be set (which is set in > ip-up), when that completes, and when it does the RilRequestComplete call. > > It never gets to the end. RIL.java seems to think it has a > response before the request completes, then errors out because it reached > "EOS" Here is a snippet of the radio logcat. Messages that have "---" are > ones I put in the reference-ril in the SETUP_DATA_CALL. There should be the > 4 mentioned above. It never finishes the wait for the local-ip property. > > I can't figure out why RIL.java thinks it should go read a response > before there has been a reply to the request. > Thanks. > Mike > ------------------------------------------------------------------ > D/GSM ( 929): [GsmSimCard] Broadcasting intent > SIM_STATE_CHANGED_ACTION LOADED reason null > D/GSM ( 929): Get PreferredAPN > D/GSM ( 929): [GsmDataConnectionTracker] ***trySetupData due to > simLoaded > D/GSM ( 929): [DSAC DEB] trySetupData with > mIsPsRestricted=false > D/GSM ( 929): [GsmDataConnectionTracker] Create from allApns : > [ATT, 1, 310410, wap.cingular, wireless.cingular.com, > http://mmsc.cingular.com, null, null, 80, *] > D/GSM ( 929): [GsmDataConnectionTracker] Setup watingApns : > [ATT, 1, 310410, wap.cingular, wireless.cingular.com, > http://mmsc.cingular.com, null, null, 80, *] > D/GSM ( 929): [PdpConnection] DataConnection.getState() > D/GSM ( 929): [PdpConnection] Connecting to carrier: 'ATT' APN: > 'wap.cingular' proxy: ' wireless.cingular.com' port: '80 > D/RILJ ( 929): [0060]> SETUP_DATA_CALL wap.cingular > D/RIL ( 811): onRequest: SETUP_DATA_CALL > D/RIL ( 811): requesting data connection to APN 'wap.cingular' > D/RIL ( 811): ---- Starting service pppd_gprs ----- > D/RIL ( 811): ---- starting wait for property ----- prop set > return code is 0 > D/GSM ( 929): [GsmDataConnectionTracker] setState: INITING > E/RILJ ( 929): Hit EOS reading message length > I/RILJ ( 929): Disconnected from 'rild' socket > > Here is the code: > err = property_set("ctl.start","pppd_gprs"); // Tell init > to start the pppd_gprs service > LOGD(" ---- Starting service pppd_gprs ----- "); > if(err<0) > { > LOGD("#### error in starting service pppd_gprs; err : > %d",err); > goto error; > } > retry = 100; > LOGD(" ---- starting wait for property ----- prop set return > code is %d",err); > while((property_get("net.gprs.local-ip",response[2], "") <= > 0) && --retry) > { > usleep(5*1000); // sleep 5ms > } > > LOGD(" --- PPPD started successfully; IP local : %s Retry > count : %d",response[3],retry); > ...... > LOGD(" --- Returning from setup data call, response length is > %d",sizeof(response)); > RIL_onRequestComplete(t, RIL_E_SUCCESS, response, > sizeof(response)); > > > > > > > > -- unsubscribe: android-porting+unsubscr...@googlegroups.com website: http://groups.google.com/group/android-porting