ianfhunter / TeamCrab

Group Project for CS4098
MIT License
0 stars 1 forks source link

Fast Threading Crash #57

Closed ianfhunter closed 10 years ago

ianfhunter commented 10 years ago

When I reduce my gamespeed to 0.1 - this happens sometimes:

[xcb] Unknown request in queue while dequeuing [xcb] Most likely this is a multi-threaded client and XInitThreads has not been called [xcb] Aborting, sorry about that. python: ../../src/xcb_io.c:179: dequeue_pending_request: Assertion !xcb_xlib_unknown_req_in_deq' failed. Aborted (core dumped)

It's starting to crop up in the intervention interface when I run it at 0.5 :S , so could someone verify it's not just my particular computer giving this error?

First thoughts are that it's clashing threads

ianfhunter commented 10 years ago

Stopped happening at normal speed on intervention, i think it was cuz my cpu was under heavy load. But still, it'd be good to figure this out.

ianfhunter commented 10 years ago

"Something somewhere is trying to do something with the UI or UI objects from the wrong thread. " https://groups.google.com/forum/#!msg/wxpython-users/6rKyY_ICUSc/Idi7L3HrY9QJ

Maybe the fact the engine calls the UI update :s that's way to much to fix.

Or possibly the event threads? More likely I think

ianfhunter commented 10 years ago

Yeah it's back. Occurs when doing inquiries and interventions a lot interchangeably. Good thing interventions was high value :P

rogersst commented 10 years ago

This only happens to me when I set the gamespeed to 0.01. I'm pretty sure it's a performance issue. I think its happening because there isn't enough time between turns for the engine to crunch all the numbers fully. Solution: Don't set the gamespeed so low.

On 28 March 2014 21:55, Ian Hunter notifications@github.com wrote:

Yeah it's back. Occurs when doing inquiries and interventions a lot interchangeably. Good thing interventions was high value :P

Reply to this email directly or view it on GitHubhttps://github.com/ianfhunter/TeamCrab/issues/57#issuecomment-38972445 .

scottcunningham commented 10 years ago

Maybe we could write a function that checks config values on game start to make sure the user doesn't do anything ridiculous?

ianfhunter commented 10 years ago

@rogersst can you pull iteration7 and run the scenario with 7 sites on normal speed.

Once it's up can you open inquiry, intervention,inquiry, intervention about 7 times?

:seven: :seven: :seven:

ianfhunter commented 10 years ago

Made sure it wasn't a memory thing again. It's not

And actually, thinking about it - The inquiry and Interventions aren't really in new threads, they just take control of the current thread.

rogersst commented 10 years ago

Ian, nothing is happening with that?

And scott, I don't think that's our responsibility to be honest. Like, my laptop couldn't run a AAA game on Ultra settings, and quite frankly it's my own fault if anything breaks if I did try to run one. :P

On 28 March 2014 22:01, Ian Hunter notifications@github.com wrote:

Made sure it wasn't a memory thing again. It's not

Reply to this email directly or view it on GitHubhttps://github.com/ianfhunter/TeamCrab/issues/57#issuecomment-38973007 .

ianfhunter commented 10 years ago

@rogersst well, that's a relief. it might just be that my laptop is really hot right now. I'll try in the AM.

I'll put something in the readme for the issue. There's already a small note in the config

ianfhunter commented 10 years ago

Yeah, this is still happening :/ I guess I'll try see if it happens with just interventions, or inquries too

ianfhunter commented 10 years ago

Fixed. So I was looking into xInitThread errors and I was starting to get code like:

        try:
            x11 = ctypes.cdll.LoadLibrary('libX11.so')
            x11.XInitThreads()
            print "XInitThreads"
        except:
            pass
        pygame.display.flip()
        try:
            x11 = ctypes.cdll.LoadLibrary('libX11.so')
            x11.tk_init(&argc, &argv);
            print "XInitThreads"
        except:
            pass

But the actual solution was to change pygame.display.flip() to pygame.display.update()

I don't know why, but I presume it has something to do with the underlying openGL calls - http://www.pygame.org/docs/ref/display.html#comment_pygame_display_update

scottcunningham commented 10 years ago

Great job, detective Hunter. I'm impressed by how you keep finding fixes to the obscure errors caused by PGU. Nice one!

On 31 March 2014 17:29, Ian Hunter notifications@github.com wrote:

Fixed. So I was looking into xInitThread errors and I was starting to get code like:

    try:
        x11 = ctypes.cdll.LoadLibrary('libX11.so')
        x11.XInitThreads()
        print "XInitThreads"
    except:
        pass
    pygame.display.flip()
    try:
        x11 = ctypes.cdll.LoadLibrary('libX11.so')
        x11.tk_init(&argc, &argv);
        print "XInitThreads"
    except:
        pass

But the actual solution was to change pygame.display.flip() to pygame.display.update()

I don't know why, but I presume it has something to do with the underlying openGL calls - http://www.pygame.org/docs/ref/display.html#comment_pygame_display_update

Reply to this email directly or view it on GitHubhttps://github.com/ianfhunter/TeamCrab/issues/57#issuecomment-39109533 .

scottcunningham commented 10 years ago

s/PGU/pygame/ :p

On 31 March 2014 18:13, Scott Cunningham cunninsc@tcd.ie wrote:

Great job, detective Hunter. I'm impressed by how you keep finding fixes to the obscure errors caused by PGU. Nice one!

On 31 March 2014 17:29, Ian Hunter notifications@github.com wrote:

Fixed. So I was looking into xInitThread errors and I was starting to get code like:

    try:
        x11 = ctypes.cdll.LoadLibrary('libX11.so')
        x11.XInitThreads()
        print "XInitThreads"
    except:
        pass
    pygame.display.flip()
    try:
        x11 = ctypes.cdll.LoadLibrary('libX11.so')
        x11.tk_init(&argc, &argv);
        print "XInitThreads"
    except:
        pass

But the actual solution was to change pygame.display.flip() to pygame.display.update()

I don't know why, but I presume it has something to do with the underlying openGL calls - http://www.pygame.org/docs/ref/display.html#comment_pygame_display_update

Reply to this email directly or view it on GitHubhttps://github.com/ianfhunter/TeamCrab/issues/57#issuecomment-39109533 .

ianfhunter commented 10 years ago

http://www.scenicreflections.com/ithumbs/Detective%20Anime%20girl_%20Wallpaper__yvt2.jpg