Hi Mark,
Bingo! Well, mostly. Changes made fixed the corruption
on both Parameter and Feature list fetching, both of
which now complete back to the Android app. Changes
pushed to my github fork.
But there's still a disconnect. This one looks like a
buffer size limit being hit, given that the log ends
mid-string. I tried setting the log level to 'warn',
and the disconnect still occurs, so it's not due to the
large text output. Or, is the disconnect intended after
these fetches, and the message truncation just a
consequence of our log buffering system? The server
reconnects automatically, after a short delay.
Greg
OVMS >
V (112065) ovms-server-v2:
OvmsServerV2MongooseCallback(MG_EV_RECV)
I (112065) ovms-server-v2: Incoming
Msg: MP-0 C1
I (112065) ovms-server-v2: Send MP-0
c1,0,0,32,0
I (112075) ovms-server-v2: Send MP-0
c1,0,1,32,0
I (112075) ovms-server-v2: Send MP-0
c1,0,2,32,0
I (112075) ovms-server-v2: Send MP-0
c1,0,3,32,0
I (112075) ovms-server-v2: Send MP-0
c1,0,4,32,0
I (112075) ovms-server-v2: Send MP-0
c1,0,5,32,0
I (112075) ovms-server-v2: Send MP-0
c1,0,6,32,0
I (112075) ovms-server-v2: Send MP-0
c1,0,7,32,0
I (112075) ovms-server-v2: Send MP-0
c1,0,8,32,0
I (112075) ovms-server-v2: Send MP-0
c1,0,9,32,0
I (112075) ovms-server-v2: Send MP-0
c1,0,10,32,0
I (112075) ovms-server-v2: Send MP-0
c1,0,11,32,0
I (112075) ovms-server-v2: Send MP-0
c1,0,12,32,0
I (112075) ovms-server-v2: Send MP-0
c1,0,13,32,0
I (112075) ovms-server-v2: Send MP-0
c1,0,14,32,0
I (112075) ovms-server-v2: Send MP-0
c1,0,15,32,0
I (112075) ovms-server-v2: Send MP-0
c1,0,16,32,0
I (112075) ovms-server-v2: Send MP-0
c1,0,17,32,0
I (112075) ovms-server-v2: Send MP-0
c1,0,18,32,0
I (112075) ovms-server-v2: Send MP-0
c1,0,19,32,0
I (112075) ovms-server-v2: Send MP-0
c1,0,20,32,0
I (112075) ovms-server-v2: Send MP-0
c1,0,21,32,0
I (112075) ovms-server-v2: Send MP-0
c1,0,22,32,0
I (112075) ovms-server-v2: Send MP-0
c1,0,23,32,0
I (112075) ovms-server-v2: Send MP-0
c1,0,24,32,0
I (112075) ovms-server-v2: Send MP-0
c1,0,25,32,0
I (112075) ovms-server-v2: Send MP-0
c1,0,26,32,0
I (112085) ovms-server-v2: Send MP-0
c1,0,27,32,0
I (112095) ovms-server-v2: Send MP-0
c1,0,28,32,0
I (112095) ovms-server-v2: Send MP-0
c1,0,29,32,0
I (112095) ovms-server-v2: Send MP-0
c1,0,30,32,0
I (112095) ovms-server-v2: Send MP-0
c1,0,31,32,0
I (112095) ovms-server-v2: Send
V (112365) ovms-server-v2:
OvmsServerV2MongooseCallback(MG_EV_CLOSE)
E (112365) ovms-server-v2: Status:
Error: Disconnected from OVMS Server V2
OVMS >
Mark Webb-Johnson wrote:
There is data corruption on the second line here:
I
(353350698) ovms-server-v2: Send MP-0
c3,0,0,32,
I (353350698)
ovms-server-v2: Send (��? c3,0,1,32,********
I (353350708)
ovms-server-v2: Send MP-0 c3,0,2,32,
I (353350708)
ovms-server-v2: Send MP-0 c3,0,3,32,
and on subsequent lines, more.
When the server receives that, it will
disconnect the client.
That diagnostic logging is output
before encryption, so it is something about the
setup of std::ostringstream* buffer in
ovms_server_v2.cpp OvmsServerV2::ProcessCommand().
Look at command case 3 (request parameter list).
It seems that the std::ostringstream
version of that code is only used
in OvmsServerV2::ProcessCommand (the others use
the string variant of it).
Can you try changing those three
occurrences to
Transmit(buffer->str().c_str())
instead of
Transmit(*buffer)
Regards, Mark.
Hi Mark,
Memory was my first thought too, but there's
no overt indication of that. There's just
an apparently spontaneous close, except it
always happens at exactly the same place.
This is with the module sitting on my desk
(not in the vehicle). It acts the same in
the car, but with real data. Tapping
"Features" on the V2 client is similar.
This is with the module connected to the
local network via wifi.
I tried taking out SSH Server and SD support
from the build config, to save RAM, but no
change to the results. No change with a
fresh fetch of Master from Github just now,
either. Any idea what I can change
(menuconfig, module config, logging), to
reveal more info?
Greg
OVMS
> log level verbose
Logging level for * set
to verbose
(Tapped "Parameters" here)
V (353350698)
ovms-server-v2:
OvmsServerV2MongooseCallback(MG_EV_RECV)
I (353350698)
ovms-server-v2: Incoming Msg: MP-0 C3
I (353350698)
ovms-server-v2: Send MP-0 c3,0,0,32,
I (353350698)
ovms-server-v2: Send (��?
c3,0,1,32,********
I (353350708)
ovms-server-v2: Send MP-0 c3,0,2,32,
I (353350708)
ovms-server-v2: Send MP-0 c3,0,3,32,
I (353350708)
ovms-server-v2: Send ���? c3,0,4,32,tmc.openvehicles.com
I (353350708)
ovms-server-v2: Send ���?
c3,0,5,32,hologram
I (353350708)
ovms-server-v2: Send MP-0 c3,0,6,32,
I (353350708)
ovms-server-v2: Send MP-0 c3,0,7,32,
I (353350708)
ovms-server-v2: Send 4��?
c3,0,8,32,ROADSTER_834
I (353350708)
ovms-server-v2: Send @��?
c3,0,9,32,*************
I (353350708)
ovms-server-v2: Send ���? c3,0,10,32,
I (353350708)
ovms-server-v2: Send ���? c3,0,11,32,
I (353350708)
ovms-server-v2: Send `��? c3,0,12,32,
I (353350708)
ovms-server-v2: Send `��? c3,0,13,32,
I (353350708)
ovms-server-v2: Send `��? c3,0,14,32,
I (353350708)
ovms-server-v2: Send `��? c3,0,15,32,
I (353350708)
ovms-server-v2: Send `��? c3,0,16,32,
I (353350708)
ovms-server-v2: Send ���? c3,0,17,32,
I (353350708)
ovms-server-v2: Send ���? c3,0,18,32,
I (353350708)
ovms-server-v2: Send ���? c3,0,19,32,
I (353350708)
ovms-server-v2: Send ���? c3,0,20,32,
I (353350708)
ovms-server-v2: Send ���? c3,0,21,32,
I (353350708)
ovms-server-v2: Send ���? c3,0,22,32,
I (353350708)
ovms-server-v2: Send ���? c3,0,23,32,
I (353350708)
ovms-server-v2: Send ���? c3,0,24,32,
I (353350708)
ovms-server-v2: Send ���? c3,0,25,32,
I (353350708)
ovms-server-v2: Send ���? c3,0,26,32,
I (353350708)
ovms-server-v2: Send ���? c3,0,27,32,
I (353350708)
ovms-server-v2: Send ���? c3,0,28,32,
I (353350708)
ovms-server-v2: Send ���? c3,0,29,32,
I (353350708)
ovms-server-v2: Send ���? c3,0,30,32,
I (353350708)
ovms-server-v2: Send ���? c3,0,31,32,
V (353350928)
ovms-server-v2:
OvmsServerV2MongooseCallback(MG_EV_CLOSE)
E (353350928)
ovms-server-v2: Status: Error:
Disconnected from OVMS Server V2
OVMS >
Mark
Webb-Johnson wrote:
Greg,
I think this is a different
issue. I used to have this all the time,
but since switching ovms_server_v2 to
mongoose, I haven’t seen it. The
features and parameters calls send a
relatively large amount of data
car->server. I think it is related to
free RAM.
Regards, Mark.
Are the disconnects
really the result of network
drops? I recently "discovered"
the Features and Parameters tabs
in the V2 app (I'm still new at
this) and notice that the server
disconnects after some number of
records have been sent. The
server reconnects about 30
seconds later, but neither tab
ever completes. Seems like there
is an error along the way that
kills the connection. 100%
repeatable.
Greg
On
January 28, 2018 10:13:40 AM
PST, Stephen Casner <
casner@acm.org>
wrote:
I handled wifi shutdowns cleanly when I first implemented telnet and
ssh as their own tasks. Now that they are under Mongoose, it is out
of my control. The socket is owned by the Mongoose code.
-- Steve
On Sun, 28 Jan 2018, Michael Balzer wrote:
I've begun working on the webserver and noticed something that may
be correlated to this: sockets don't get closed when losing the
connection. The effect is visible on both web and telnet server (ssh
not tested). To reproduce, switch the Wifi network with an open
connection, the port will not be available until timeout.
Regards,
Michael
_______________________________________________
OvmsDev mailing list
OvmsDev@lists.teslaclub.hk
http://lists.teslaclub.hk/mailman/listinfo/ovmsdev
_______________________________________________
OvmsDev mailing list
OvmsDev@lists.teslaclub.hk
http://lists.teslaclub.hk/mailman/listinfo/ovmsdev