Crash of WD-linux

Hi Brian… not sure if this is related to new serial routines or not…

WD crashed about 830pm my time, with this error:

Exception EAccessViolation in module WeatherD at 0806D805
Access violation at address 0126D99E, accessing address 0000000D.
Segmentation fault.

Does this give you any info can use?

Its now past midnight that I have restarted WD, and it still has yesterdays values for extreme conditions and rainfall. What would you suggest the procedure to roll this over would be?

I suppose you are starting WDL from a terminal window. So can you from this window do the following :
ulimit -c unlimited
check the command succeded with ulimit -a : you should see core dump : unlimited.

start wd
and wait for a new crash.

Normally a crash in seg fault will generate a core dump file.
If it’s the case send this file to me. I’ll take a look at it with gdb and find the reason if I am lucky.

Thanks

Alrighty… environment has been setup… Now waiting for something that hopefully was just a one timer.

an eaccess violation is an array that has gone out of bounds
does the crash happen at a certain time each time or?

It happened about 830pm my time last night, I wasn’t home, so I’m not sure what was going on… I’ve got that ulimit configuration going for Yves, and if it happens again, he wanted to take a peek at the core dump file.

are you using FTP at all?
try this update:
http://www.weather-display.com/downloadfiles/WeatherDlinux.gz
(unzip and then rename as WeatherD )

I’m not using any ftp to move files, but parts of it are on for some reason.

It did crash again with almost the same error except the addresses may have been a bit different. I didn’t get a corefile for Yves, I had rebooted eariler that evening and forgot to put the ulimit configs in.

Exception EAccessViolation in module WeatherD at 0806D805.
Access violation at address 00116099E, accessing address 6500680C
Segmentation fault.

The address does not matter much since the segmentation violation occurs when the programm is too far int the other lands.
What is annoying is the fact that you did not have a chance to get a core file.

please set the ulimit -c first then restart WDL.

I’ll send you soon a libcom.so with debugging on.

Yves

it might not be the library reading in though,it might be one of my routines (array going out of bounds) (but, has this problem occured before with the older comport (the one with the memory leak?)

(only way to know would be to run it station less)
but then it could be the com port routine, which does deal with reading into an array
i have put in checks to make sure the amount read in does not go above the array size set
but there is another array…i will put in some more checks in that, standby

I’ve got that new libcom.so working… just was curious as to anything special to look for, or will that come out in the event of a crash
in the coredump.

I’ve also added the ulimit stuff into a script, so every bash shell I start will have that config setup.

Nothing special, its just a compile with the debug flag, so if you finally get a core dump I will be able to run the crash with gdb. If the bug is within libcom.so I’ll be able to fix it, otherwise we better to be patient. You are using a wm968 station?

i have increased the size of the wmr968 data arrays here:
http://www.weather-display.com/downloadfiles/WeatherDlinux.gz
might help
(unzip and rename)

Ok, giving this a whirl… see what happens… :wink:

Yves: yes, I have a WMR-968.

I was not sure this is the reason of my question. I see Brian increased length of buffer, Good stuff, this station is giving us lots of headaches, This seg fault can be generated by anything in libcom or in WD, the problem is that it happens once in a while so as I said better to be patient.
Brian is it possible to records the data coming from WMR-968 while WDL is doing its execellent job? So if a seg fault happens we would be able to see if it was caused by the input?

Hopefully next time we will get a core dump…

Ok, it crashed on me again, but no apparent error message or core dump. Just back to the shell it was started from. I’ve restarted it after
checking to make sure ulimit is set etc. See what comes of it.

is it always after a certain length of time or at a certain time?

It could very well be after a certain lenght of time. The last uptime would have been about 18 hours, and the time before that was perhaps close to that. I know that I started it again at just after 5pm my time, so I will see how long it goes before it crashes, if it crashes. Cross my fingers that it doesn’t.

I’m away from home for the next 24 hours, but I did turn on VNC, so if I notice it going, I’ll look in.

Well, it hasn’t crashed in over 24hrs now, but it did stop sending data to CWOP and WUnderground just after midnight, and attempts to restart them via the test button in each respectable config screen doesn’t seem to do anything.

I’ll restart WD and see if that gets things going again, and we will get another shot at seeing if a crash occurs after a period of time.

anything under view, program error log or the ftp log?
sounds like a flag has not been reset after some error with the internet
Ideally i would like to still pursue having the ftp/internet uploads done with the separate ftpupd execuable
I will try again to see why that was not starting up correctly

I made it crash! :slight_smile: Another one of those Exception EAccessViolation jobbies… I was trying to adjust the times in the Weather Underground setup screen, and when I hit cancel, because I wanted to check something before I committed the changes, it went boom.

Yves, if you are interested in looking at it, I can put the coredump on my webserver, and email you the specifics. Its a 56mb file by the looks of it.

Exception EAccessViolation in module WeatherDlinux at 0806D805 (this number looks recurring)
Access violation at address 01160690, accessing address 0000000D.
Segmentation fault (core dumped)