Just happened again as I was going to join Cargame's S2 server. This time, I was not in the server for more then 10 seconds and the whole system crashed. Now that this has happened 4 times, I really hope we have enough data to find out the cause.
Depending on how this thread turns out, it might be a bug with LFS it's self, or it might be a bug with the Intel drivers. This thread will be used to find out what's what.
The issue was first found within the patch thread for 0.6B12. As stated I am using the Intel HD Graphics 4000 within the Intel Core i7-3770k. Using the drivers from 9/17/2012 (9.17.10.2068), and the drivers from 10/17/2012 (9.17.10.2075) I get a system hang while playing LFS. This only happens while I'm playing LFS. The problem started during the testing for the current stable release, but because of Patch Tuesday including graphics drivers for my system I updated that, and once the system started crashing I assumed that it was due to a bug in the graphics drivers. It seems that after this update, that the problem may well be with LFS.
The crash only happens when I'm running LFS, but I can't think of any DX8.1 games to test with. If you have a recommendation, I'll give it a go.
I've used Star Trek Online in DX9 and DX11 mode, and have not had a crash even after a significant amount of time has passed.
The system crash only happens while in full screen mode, I can not reproduce the crash in Windowed Mode (yet).
Sometimes it happens after 10 minutes, sometimes it's when I join the race.
But it seems to be centered around when a client joins the track, myself or someone else.
---
What I'm trying to find out, if this is a driver bug, or a engine bug. If anyone has the HD 4000 and can try to reproduce this bug on their system using the latest stable version of the graphics drivers, then we can start nailing this down. Also, if anyone can reproduce this bug without using the Intel HD 4000 on their system that would mean it's not a graphics bug. So, has anyone else had this problem?
---
I've had this bug happen 3 times in the past hour, all on Cargame's S2 server, so if he happens to have the reply file, you might be able to detect what is going on there.
---
There was something else that I've noticed while I was investigating this bug. I joined Cargame's S2 server just before the lights went out to start a race, but for me, it showed the the lights were already green even tho clearly the race had not started yet because some clients were revving their engines like you do at the start of a race. Then then set off a few seconds after. When the pole sitter / leader crossed the start finish line the number of laps for my client showed 2 / 6, even tho clearly this was the start of the race and it should of been 1 / 6. They moved down to turn one, and I think a client might of joined at this point and that's where my computer crashed. I have a screen shot attached to show this crash and the other crashes I've had. Hopefully with the replay files from Cargame's server, and my details and screen shots you can nail this one down.
---
Click the images below to get a larger view.
Laps Out of Sync (Joined During Start of Race Sequence)
I'm using a Intel HD 3000 on this system, with Windows 8, I just played some rounds on cargame's server and had no issues. The other system that's running windows 7 with a Intel HD 4000 crashes after the updates. I'm thinking at this point that it might be a problem with the graphics driver that is on there, as I'm unable to reproduce it on similar hardware, using the older drivers. (Granted, this is Windows 8 as well.)
1 & 2) I ran Star Trek Online using DX11 mode, that much more resource intensive then LFS, and there was no crash for double the time frame it takes to happen in LFS. So it appears to open happen with LFS, and it started happen immediately after updating my display drivers and LFS to B14. I don't know if it's the display drivers or LFS, but considering that the display drivers work with STO, I'm gonna have to pin this on LFS for now.
3 & 4) LFS is in full screen mode, the first crash happened seconds after connecting to a server, the second crash happened after about 15 minutes and one lap into the second race I had on cargame's server.
5) I can't reliably reproduce the bug, yet. But if I can, I'll be sure to give you as much information as I can.
When Watson dumps memory, it dumps the whole system memory on a full system crash. That's if I recall correctly, that is. I am fairly sure that I'm not using a Page File, because it's really bad for the SSD's lifespan that I'm using as my system drive, so I'm pretty sure that's the first thing that I disable. (I'm not at my computer right now to confirm that.)
In the US, I'll have a 75MBit Down / 25 MBit Up connection to my house, using FiOS. So, having the option would be nice, as I can run a few servers off my connection if I really wanted too.
But that's not why I'm speaking to you right now, I think I've found a bug, but the problem is that it crashes my whole computer, freezes the whole thing, I have to hit the reset button to reboot the computer. I don't know yet if it's just LFS that causes the problem, or if it's the new Intel Display Drivers that I just installed (It is was Patch Tuesday for Windows).
I've attached the DxDiag for my computer, it should give you all of the information about my system that you could need. The problem is right now that I can't seem to give you a memory dump, because, ironically, Watson does not start up when the computer crashed, or start on bootup. I'll poke around in my settings to see if I can give you a memory dump or a crash report from the system, but it might be 16GB. I'm willing to upload that somewhere if you're willing to take it.
Just looked at the video that TAA posted, I still think OAuth is the way to go, OZ wants the client's username and password and then let's the implementation do what it needs to do with that information. I would much prefer to not give out the keys to my account to every website that want's to confirm my authenticity with this account. I feel that it gives one account power over the other, and I want to avoid that.
Apparently from the video, OAuth 1.0 is the way to go, OAuth 2.0 is fine if you know cryptography, but that is something that Victor is going to have to decide if he want's to implement. The only information that we need is, is this client that's talking to me really have ownership over the LFS account. That's all of the information that I want, and we can do that with OAuth 1.0 just fine.
Yes, PRISM does work with PHP 5.5.0, Alpha 1 without any modification, please test and let me know how you like it ... I would be nice to have a PRISM 0.5.0 that runs on PHP 5.5.0, I like the synergy of the fives.
Fixed bug #61038 (unpack("a5", "str\0\0") does not work as expected). (srgoogleguy, Gustavo)
Return previous handler when passing NULL to set_error_handler and set_exception_handler. (Nikita Popov)
It should be noted that the penultimate item in the core fixes a bug in PRISM to do with license plates and the second item adds a feature to the PACK function that allows us to fix the handling of license plates in PRISM. Now that I've gotten over how it effects PRISM, let's talk about PHP in a more general sense.
---
The simplified password hashing API is a massive step in the right direction, after looking over the RFC they posted, they did a great job on it. And it passed unanimously into the next release.
---
Generators are going to be a massive boon for people using a small amount of ram, as it's much more efficent when you want to itarate over an item, really excited to start using that! Regarding coroutines, they are intresting, but I can't currently see a use case for the, running code side by side in such as way, seems ... odd. These did pass into the next release after a vote of 24 to 1.
---
Supporting lists within foreach is possible, no more redundant varables!
// Before foreach ($users as $user) { list($firstName, $lastName) = $user; echo "First name: $firstName, last name: $lastName. "; }
// After foreach ($users as list($firstName, $lastName)) { echo "First name: $firstName, last name: $lastName. "; } ?>
Thank good, god for this one! That should save me quite a bit of time and space within my codebase! This passed, 11 to 4, but using 'silent tokens' (error suppression) did not pass 10 to 2.
---
Support for finally keyword is 'finally' here. You can now have a try, catch, finally statement it all it's glory. Pokemon programming here we come (for when you gotta catch 'em all!). This oddly passed with a vote of 25 to 5.
---
With a vote of 12 to 2, empty() and isset() will accept arbitrary arguments, I find this almost odd, but sure if you really want to pass a function to these constructs why not!?
WebSockets are supported on the iOS Safari platform, Google Chrome / Safari, FireFox, Internet Explorer and Opera. Server Sent Events are supported on Google Chrome but not Safari, FireFox, Internet Explorer and Opera.
WebSockets allow for asynchronous connections between the client and the web server. Server Side Events allow for push notifications to be sent from the web server to the client, basically out right replacing Comet and Long Polling.
I know you have implemented a WebSockets server on the current LFSWorld for Stats, I was wondering if you were planning to go further on the subject.
I've spoken about OAuth from the prospective of PRISM, but I would like a discussion about it in the broader sense. OAuth would allow for people to use their LFS credientals on any related LFS site that wishes to make sure that you have an LFS account. You (Victor) and the client can control what information is given out about their account. This would allow for polls to be taken from the membership at the community awards each year without people cheating because we could ensure that each client really has an LFS account. It would also provide authenication to prove that you have a license on other websites, or could be used within admin systems like PRISM to allow them to access their server and admin them remotely from within a PRISM install.
That's gotta be game engine lag time when it comes to getting around to processing the packet. Like DANIEL-CRO said, the game engine's resolution is centiseconds. Really I think that the LFS engine is just more honest about it then other game engines.
What is the best way to debug each build you give us Scawen as far as the networking flow? Do you have special developer tools that are built into the game's exe that would allow us to see more information while we are on each server so that we can give you better feedback? As you've said yourself that MPRs are not really useful as they contain engine events from the server side, it does not give an exact representation of what each client was feeling during the online session. If we could get more information during our online sessions maybe we could give you better feedback if the packet / buffer system is working better then the previous versions.
Do you have any command line switches, or keyboard shortcuts that have not been disclosed that would give us more information then a normal client would normally set when playing?
Also, if you could please report ping time's in Milliseconds only, as this is standard notation I think that would generally help quite a lot with people's understanding of what is going on.
If that's the case, I would leave the packet struts as packets and use another class where I would pass the packets as a struct when I wanted to work on it. Or nest the packet struct into the class and let the class act on it's nested data.
No, I mean, my WebSocket server is sending some garbage data that is throwing the connection off, as like time it get's a packet after the handshake the client disconnections or something. I really don't know at this point. I'm so delirious after Hurricane Sandy, this area is a disaster and I could not tell you what I did yesterday yet alone 4 months ago.