Saturday, 2007-07-28

*** tpb has joined #tp00:00
*** ChanServ sets mode: +o tpb00:00
* xdotx notes the updates from tomorrow00:04
tpbdisconnected from worldforge: Ping sent at 2007-07-28T00:02:05 not replied to.00:04
llnzok cool00:04
llnznote the change to mutliple cats for properties and components00:05
llnzuse addCategoryId instead of setCategoryId00:05
xdotxah00:05
*** llnz2 has joined #tp00:29
*** llnz has quit IRC00:29
*** llnz2 is now known as llnz00:29
*** mithro has joined #tp00:47
llnzhi mithro00:47
mithrohey llnz00:47
mithrohow is everything?00:47
mithro~seen nash00:47
tpbmithro: nash was last seen in #tp 1 day, 1 hour, 22 minutes, and 29 seconds ago: <nash> ignore that - wrong window00:47
llnzfine thanks, you?00:48
mithrookay00:54
mithro~seen DystopicFro00:54
tpbmithro: DystopicFro was last seen in #tp 1 day, 2 hours, 8 minutes, and 56 seconds ago: <DystopicFro> since tpserver-cpp generates the _num-components property on the fly as designs are evaluated00:54
mithrobblr00:59
mithrohave to go fix my laptop's power brick :/00:59
llnzoh dear01:01
*** mithro has quit IRC01:16
*** mithro has joined #tp01:18
*** llnz2 has joined #tp01:31
*** llnz has quit IRC01:31
*** llnz2 is now known as llnz01:31
*** mithro has quit IRC01:39
*** mithro has joined #tp01:39
CIA-3mithro schemepy * r7c760c235688 /guile/ (guile.py guilehelper.c): Guile 1.6 compatiability fixes.05:05
CIA-3mithro schemepy * ra847543a75c9 /guile/ (Makefile guile.py guilehelper.c): Guile 1.6 support.05:05
CIA-3mithro schemepy * r50670bd88fed /guile/ (guile.py guilehelper.c): Fixed the segfault by non-matching guile version.05:05
*** zipola has joined #tp05:54
mithrollnz: ping!06:34
mithrohttps://sourceforge.net/tracker/index.php?func=detail&aid=1762596&group_id=132078&atid=72309906:36
tpb<http://ln-s.net/l_I> (at sourceforge.net)06:36
mithrohttp://sourceforge.net/tracker/index.php?func=detail&aid=1762596&group_id=132078&atid=72309906:36
tpb<http://ln-s.net/l_J> (at sourceforge.net)06:36
mithrohrm....06:37
mithrohttp://sourceforge.net/tracker/index.php?func=detail&aid=1762603&group_id=132078&atid=72309906:42
tpb<http://ln-s.net/l_L> (at sourceforge.net)06:42
llnzmithro: pong06:43
mithrolousy C/C++ coders :)06:44
mithrofound 1 bug in galaxie and 2 in tpserver-cpp06:44
mithroi'm yet to get to turn 10007:00
llnzTurn number: 12907:00
mithrollnz: ?07:04
llnzmy local tpserver-cpp, which hasn't crashed07:05
mithrollnz: but it's doing trivial things :)07:05
mithroI'm yet to get to turn 100 with AI's actually using the server07:06
llnzdemo1: Turn number: 159707:06
llnzdemo2 the same07:07
llnzmaybe the AI is doing something wrong07:07
llnzwhich branch are you following?07:08
mithro    >local         063a9638aac1~ Protect against removed objects in the otherorders list.07:09
mithrollnz: the AI doing something wrong shouldn't cause the server to CRASH :)07:09
llnzi know07:11
llnzwarning: long post coming07:11
llnz> IGObject * ob = objectmanager->getObject(*itcurr);07:11
llnz>     if(ob->getType() == planettype || ob->getType() == fleettype){07:11
llnz>       OrderQueueObjectParam* oqop = dynamic_cast<OrderQueueObjectParam*>(ob->getObjectData()->getParameterByType(obpT_Order_Queue));07:11
llnz>       if(oqop != NULL){07:12
llnz>         OrderQueue* orderqueue = ordermanager->getOrderQueue(oqop->getQueueId());07:12
llnz>         if(orderqueue != NULL){07:12
llnz>           Order * currOrder = orderqueue->getFirstOrder();07:12
llnz>           if(currOrder != NULL){07:12
llnz>             if(currOrder->doOrder(ob)){07:12
llnz>               orderqueue->removeFirstOrder();07:12
llnz>             }else{07:12
llnz>               orderqueue->updateFirstOrder();07:12
llnz>             }07:12
llnz>           }07:12
llnz>         }07:12
llnz>       }07:12
llnz>     }07:12
llnz>     objectmanager->doneWithObject(ob->getID());07:12
llnzCrash happens on last line: how?07:12
llnzif ob started as NULL, then second line should crash07:12
mithrollnz: you are asking the wrong person :)07:13
mithroI have the gdb segfault in front of me07:14
mithrois there anything I can do to get more information for you?07:14
mithro(gdb) frame07:16
mithro#0  0x080c8ffc in IGObject::getObjectData (this=0x0) at object.cpp:28607:16
mithro286       return myObjectData;07:16
mithro(gdb) inspect myObjectData07:16
mithroCannot access memory at address 0x2c07:16
llnzwhich one?07:18
llnzie: what is #1?07:18
mithro?07:20
mithro#0  0x080c8ffc in IGObject::getObjectData (this=0x0) at object.cpp:28607:20
mithro#1  0xb7a0496f in Move::getETA (this=0x83fbd10, ob=0x0) at move.cpp:6707:20
mithroProgram received signal SIGSEGV, Segmentation fault.07:22
mithro[Switching to Thread -1212340528 (LWP 22054)]07:22
mithro0x080c8ffc in IGObject::getObjectData (this=0x0) at object.cpp:28607:22
mithro286       return myObjectData;07:22
mithro(gdb) bt07:22
mithro#0  0x080c8ffc in IGObject::getObjectData (this=0x0) at object.cpp:28607:22
mithro#1  0xb7a2296f in Move::getETA (this=0x8558a90, ob=0x0) at move.cpp:6707:22
mithro#2  0xb7a23bb0 in Move::createFrame (this=0x8558a90, f=0x855c120, objID=211, pos=0) at move.cpp:7807:22
mithro#3  0x0810509b in PlayerAgent::processGetOrder (this=0x854a190, frame=0x8313678) at playeragent.cpp:50207:22
mithro#4  0x0810642c in PlayerAgent::processIGFrame (this=0x854a190, frame=0x8313678) at playeragent.cpp:9707:22
mithro#5  0x080d5f88 in PlayerConnection::inGameFrame (this=0x840e388) at playerconnection.cpp:28807:22
mithro#6  0x080d7329 in PlayerConnection::process (this=0x840e388) at playerconnection.cpp:8007:22
mithro#7  0x080bee5a in Network::masterLoop (this=0x8131320) at net.cpp:33407:22
mithro#8  0x080afb58 in main (argc=3, argv=0xbfa70284) at main.cpp:13507:22
llnzok07:23
llnztype "up"07:23
mithro(gdb) up07:23
mithro#1  0xb7a2296f in Move::getETA (this=0x8558a90, ob=0x0) at move.cpp:6707:23
mithro67        Fleet* fleet = ((Fleet*)(ob->getObjectData()));07:23
llnzup again07:24
mithro(gdb) up07:25
mithro#2  0xb7a23bb0 in Move::createFrame (this=0x8558a90, f=0x855c120, objID=211, pos=0) at move.cpp:7807:25
mithro78        turns = getETA(Game::getGame()->getObjectManager()->getObject(objID));07:25
llnzi guess there isn't an object with id 21107:27
llnzahh07:27
llnzi see the/a problem07:27
mithroI want to see the AI colonise every planet07:28
* mithro ponders getting a movie07:29
*** niphree has joined #tp07:32
mithrollnz: maybe some liberal use of asserts?07:32
mithrohi niphree!07:32
niphreehello07:32
mithroniphree: got some stuff to commit? :)07:32
llnzmithro: rather not use asserts, leaves state messy07:32
niphreemithro: eee... not now :] I've just started working07:33
mithrollnz: hrm? asserting things like that the object back from the objectManager is valid is probably good?07:34
llnzyeah, was about to do that07:34
mithroi'll be back in about 30 minutes07:36
mithrogoing to go see if I can get a movie07:36
CIA-3llnz tpserver-cpp * rbe6e54f3ad8b /modules/games/minisec/move.cpp:08:04
CIA-3Possible fix to 1762596, deref NULL in minisec move.08:04
CIA-3This locally protects against and logs objects that are not found. Full fix08:04
CIA-3would be to make it impossible to happen in any order, not just move in08:04
CIA-3minisec.08:04
mithroback08:06
mithrollnz: should I give that a go?08:06
llnzyeah08:06
*** tuna-fish has quit IRC08:07
mithrowhat is actually causing the problem?08:08
llnzmaybe wrong objectid/orderqueueid sent from client, or objectid/orderqueueid missmatch in tpserver-cpp08:08
llnzgoing to fix the latter properly in a minute08:09
mithroanother segfault!08:12
mithrojust got https://sourceforge.net/tracker/index.php?func=detail&aid=1762603&group_id=132078&atid=72309908:13
tpb<http://ln-s.net/l_h> (at sourceforge.net)08:13
mithroProgram received signal SIGSEGV, Segmentation fault.08:13
mithro[Switching to Thread -1211857200 (LWP 27330)]08:13
mithro0x080c88aa in IGObject::getID (this=0x0) at object.cpp:7508:13
mithro75              return id;08:13
mithro(gdb) bt08:13
mithro#0  0x080c88aa in IGObject::getID (this=0x0) at object.cpp:7508:13
mithro#1  0xb7ab0ccf in MinisecTurn::doTurn (this=0x8195738) at minisecturn.cpp:21308:13
llnzoh, that's a more interesting one08:14
mithro(gdb) up08:14
mithro#1  0xb7ab0ccf in MinisecTurn::doTurn (this=0x8195738) at minisecturn.cpp:21308:14
mithro213         objectmanager->doneWithObject(ob->getID());08:14
mithro(gdb) print ob08:14
mithro$1 = (IGObject *) 0x008:14
llnzprint itcurr08:15
mithro(gdb) print itcurr08:16
mithro$2 = {_M_node = 0x83f19d0}08:16
llnzodd08:17
mithro    if(ob != NULL && (ob->getType() == planettype || ob->getType() == fleettype)){08:17
mithrowhy do you check ob is null there?08:17
mithro(line 197)08:17
daxxarmithro: just fyi, you could see 'ob' from the first line of the sigsegv; IGObject::getID (this=0x0). :-)08:17
llnzbecause the last of the "if" statement would segfault if ob is null08:18
mithrodaxxar: I guess so :)08:18
llnzi see the mistake08:18
llnzwill fix it now08:18
mithroobjectmanager->doneWithObject(ob->getID());08:18
mithrothat will segfault with null?08:18
mithro(well it does segfault with null)08:18
mithroso shouldn't the if contain that?08:19
CIA-3llnz tpserver-cpp * r230f28ab83c5 /modules/games/minisec/minisecturn.cpp:08:20
CIA-3Protect the whole block against null pointer in MinisecTurn.08:20
CIA-3Hopefully fixes 1762603.08:20
CIA-3llnz tpserver-cpp * rb4422430fe98 /tpserver/playeragent.cpp:08:30
CIA-3For TP03 getOrder, get orderqueueid from object, not direct from frame.08:30
CIA-3This should make orderqueueids easier to manage and work with, and not08:30
CIA-3worry rulesets about backward compatability with TP03 and before, focusing08:30
CIA-3only on TP04 now.08:30
mithro?08:30
mithrodoes that fix a bug?08:31
llnzmaybe08:31
mithrollnz: what is this08:38
mithro(False, 'OrderQueue failure.')08:38
mithro?08:38
llnznot sure, looking now08:38
llnzunable to add order to orderqueue08:39
mithroanother segfault08:40
mithroohh, this segfault is a bit weird08:40
mithrotpserver-cpp>08:40
mithroProgram received signal SIGPIPE, Broken pipe.08:40
mithro[Switching to Thread -1212049712 (LWP 30897)]08:40
mithro0xffffe410 in ?? ()08:40
mithro(gdb) bt08:40
mithro#0  0xffffe410 in ?? ()08:40
mithro#1  0xbfb1ae48 in ?? ()08:40
mithro#2  0x080d7148 in PlayerTcpConnection::verCheckLastChance (this=0x88c1fc0) at playertcpconn.cpp:32308:40
mithro#3  0x080d8289 in PlayerTcpConnection::processWrite (this=0x88c1fc0) at playertcpconn.cpp:11108:40
mithro#4  0x080d847d in PlayerTcpConnection::sendFrame (this=0x88c1fc0, frame=0x8b3f1d8) at playertcpconn.cpp:9708:40
mithro#5  0x08105393 in PlayerAgent::processGetObjectById (this=0x8a376d8, frame=0x8b35fc0) at playeragent.cpp:24808:40
mithro#6  0x081054a9 in PlayerAgent::processIGFrame (this=0x8a376d8, frame=0x8b35fc0) at playeragent.cpp:9008:40
mithro#7  0x080d5878 in PlayerConnection::inGameFrame (this=0x88c1fc0) at playerconnection.cpp:28808:40
mithro#8  0x080d6c19 in PlayerConnection::process (this=0x88c1fc0) at playerconnection.cpp:8008:40
mithro#9  0x080be74a in Network::masterLoop (this=0x8130320) at net.cpp:33408:40
mithro#10 0x080af448 in main (argc=3, argv=0xbfb1b334) at main.cpp:13508:40
mithrowhats a SIGPIPE?08:41
llnznot segfault, SIGPIPE08:41
llnzsignal pipe is given when writing to a closed socket08:41
llnzit is not suposed to happen08:41
mithrohrm, I just typed cont and it seemed to work08:41
mithro2007-07-28 22:13:26 < Error > underlying write, tcp, error is: Broken pipe08:42
mithro2007-07-28 22:13:26 < Error > Socket error writing08:42
llnzyeah, sig pipe shouldn't exit08:42
mithrollnz: how does one change the turn processing time?08:42
llnzint32_t PlayerTcpConnection::verCheckLastChance(){08:43
llnz  return -1;08:43
llnz}08:43
llnzodd08:43
llnzmithro: to make the turns closer together?08:43
mithrollnz: actually to make the further apart :)08:43
llnzoh08:43
llnzon the console: "settings set turn_length_over_threshold 1200" (1200 = 20minutes)08:44
llnzin the config file: "turn_length_over_threshold = 1200"08:44
llnzon the command line (overridden by config): "--turn_length_over_threshold 1200"08:44
mithrollnz: is there a way to figure out the number of objects on the server?08:49
llnzavahi and metaserver are both told08:50
mithroTXT objs = 55708:50
llnzi will be adding a "statistics" command on the console for the number of players, objects, orders, etc, etc08:51
mithroyay managed to get to turn 15608:51
CIA-3llnz tpserver-cpp * r133d38185d80 /tpserver/playeragent.cpp: Better fail frame string for failure to add order.08:55
mithrohrm tpserver-cpp is running at 100%08:58
mithroeven when not doing turn processing08:58
llnzodd, what does the console/log show?08:58
CIA-3llnz tpserver-cpp * r97ba80ea01b9 /tpserver/playeragent.cpp: Similar backward support for RemoveOrder and ProbeOrder as GetOrder has.09:00
mithrollnz: not a lot09:05
mithroI think it has to do with the SIG_PIPE09:05
llnzcould be09:06
* llnz wanders off09:07
llnzlater all09:07
*** llnz has quit IRC09:07
*** JLP has quit IRC09:54
*** TBBle has quit IRC10:16
*** TBBle has joined #tp10:16
*** JLP has joined #tp10:40
mithrohey JLP10:43
JLPmithro: ahoy10:43
*** niphree has quit IRC12:08
*** tuna-fish has joined #tp14:06
*** zipola has quit IRC14:12
*** zipola has joined #tp14:18
CIA-3mithro tpsai-py * r6a803f91868a / (profile-output.py tpsai-py): Added profiling.15:49
CIA-3mithro tpsai-py * r43f9a201756c /tpsai-py:15:49
CIA-3Fix up tpsai-py so it works.15:49
CIA-3 - Now look at the order to figure out ship ids.15:49
CIA-3mithro tpsai-py * r053ce5b28644 / (things.py tpsai-py): Some checks to make sure the AI is doing what it's suppose to.15:49
CIA-3mithro tpsai-py * rd2dfda8bcd4c /tpsai-py:15:49
CIA-3Added persisence mode.15:49
CIA-3Check move/colonise order and don't aways delete and add.15:49
*** tpb has joined #tp18:54
*** ChanServ sets mode: +o tpb18:54
*** xdotx has quit IRC20:48
*** xdotx has joined #tp21:55

Generated by irclog2html.py 2.5 by Marius Gedminas - find it at mg.pov.lt!