*** tpb has joined #tp | 00:00 | |
*** ChanServ sets mode: +o tpb | 00:00 | |
* xdotx notes the updates from tomorrow | 00:04 | |
tpb | disconnected from worldforge: Ping sent at 2007-07-28T00:02:05 not replied to. | 00:04 |
---|---|---|
llnz | ok cool | 00:04 |
llnz | note the change to mutliple cats for properties and components | 00:05 |
llnz | use addCategoryId instead of setCategoryId | 00:05 |
xdotx | ah | 00:05 |
*** llnz2 has joined #tp | 00:29 | |
*** llnz has quit IRC | 00:29 | |
*** llnz2 is now known as llnz | 00:29 | |
*** mithro has joined #tp | 00:47 | |
llnz | hi mithro | 00:47 |
mithro | hey llnz | 00:47 |
mithro | how is everything? | 00:47 |
mithro | ~seen nash | 00:47 |
tpb | mithro: nash was last seen in #tp 1 day, 1 hour, 22 minutes, and 29 seconds ago: <nash> ignore that - wrong window | 00:47 |
llnz | fine thanks, you? | 00:48 |
mithro | okay | 00:54 |
mithro | ~seen DystopicFro | 00:54 |
tpb | mithro: 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 evaluated | 00:54 |
mithro | bblr | 00:59 |
mithro | have to go fix my laptop's power brick :/ | 00:59 |
llnz | oh dear | 01:01 |
*** mithro has quit IRC | 01:16 | |
*** mithro has joined #tp | 01:18 | |
*** llnz2 has joined #tp | 01:31 | |
*** llnz has quit IRC | 01:31 | |
*** llnz2 is now known as llnz | 01:31 | |
*** mithro has quit IRC | 01:39 | |
*** mithro has joined #tp | 01:39 | |
CIA-3 | mithro schemepy * r7c760c235688 /guile/ (guile.py guilehelper.c): Guile 1.6 compatiability fixes. | 05:05 |
CIA-3 | mithro schemepy * ra847543a75c9 /guile/ (Makefile guile.py guilehelper.c): Guile 1.6 support. | 05:05 |
CIA-3 | mithro schemepy * r50670bd88fed /guile/ (guile.py guilehelper.c): Fixed the segfault by non-matching guile version. | 05:05 |
*** zipola has joined #tp | 05:54 | |
mithro | llnz: ping! | 06:34 |
mithro | https://sourceforge.net/tracker/index.php?func=detail&aid=1762596&group_id=132078&atid=723099 | 06:36 |
tpb | <http://ln-s.net/l_I> (at sourceforge.net) | 06:36 |
mithro | http://sourceforge.net/tracker/index.php?func=detail&aid=1762596&group_id=132078&atid=723099 | 06:36 |
tpb | <http://ln-s.net/l_J> (at sourceforge.net) | 06:36 |
mithro | hrm.... | 06:37 |
mithro | http://sourceforge.net/tracker/index.php?func=detail&aid=1762603&group_id=132078&atid=723099 | 06:42 |
tpb | <http://ln-s.net/l_L> (at sourceforge.net) | 06:42 |
llnz | mithro: pong | 06:43 |
mithro | lousy C/C++ coders :) | 06:44 |
mithro | found 1 bug in galaxie and 2 in tpserver-cpp | 06:44 |
mithro | i'm yet to get to turn 100 | 07:00 |
llnz | Turn number: 129 | 07:00 |
mithro | llnz: ? | 07:04 |
llnz | my local tpserver-cpp, which hasn't crashed | 07:05 |
mithro | llnz: but it's doing trivial things :) | 07:05 |
mithro | I'm yet to get to turn 100 with AI's actually using the server | 07:06 |
llnz | demo1: Turn number: 1597 | 07:06 |
llnz | demo2 the same | 07:07 |
llnz | maybe the AI is doing something wrong | 07:07 |
llnz | which branch are you following? | 07:08 |
mithro | >local 063a9638aac1~ Protect against removed objects in the otherorders list. | 07:09 |
mithro | llnz: the AI doing something wrong shouldn't cause the server to CRASH :) | 07:09 |
llnz | i know | 07:11 |
llnz | warning: long post coming | 07: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 |
llnz | Crash happens on last line: how? | 07:12 |
llnz | if ob started as NULL, then second line should crash | 07:12 |
mithro | llnz: you are asking the wrong person :) | 07:13 |
mithro | I have the gdb segfault in front of me | 07:14 |
mithro | is there anything I can do to get more information for you? | 07:14 |
mithro | (gdb) frame | 07:16 |
mithro | #0 0x080c8ffc in IGObject::getObjectData (this=0x0) at object.cpp:286 | 07:16 |
mithro | 286 return myObjectData; | 07:16 |
mithro | (gdb) inspect myObjectData | 07:16 |
mithro | Cannot access memory at address 0x2c | 07:16 |
llnz | which one? | 07:18 |
llnz | ie: what is #1? | 07:18 |
mithro | ? | 07:20 |
mithro | #0 0x080c8ffc in IGObject::getObjectData (this=0x0) at object.cpp:286 | 07:20 |
mithro | #1 0xb7a0496f in Move::getETA (this=0x83fbd10, ob=0x0) at move.cpp:67 | 07:20 |
mithro | Program received signal SIGSEGV, Segmentation fault. | 07:22 |
mithro | [Switching to Thread -1212340528 (LWP 22054)] | 07:22 |
mithro | 0x080c8ffc in IGObject::getObjectData (this=0x0) at object.cpp:286 | 07:22 |
mithro | 286 return myObjectData; | 07:22 |
mithro | (gdb) bt | 07:22 |
mithro | #0 0x080c8ffc in IGObject::getObjectData (this=0x0) at object.cpp:286 | 07:22 |
mithro | #1 0xb7a2296f in Move::getETA (this=0x8558a90, ob=0x0) at move.cpp:67 | 07:22 |
mithro | #2 0xb7a23bb0 in Move::createFrame (this=0x8558a90, f=0x855c120, objID=211, pos=0) at move.cpp:78 | 07:22 |
mithro | #3 0x0810509b in PlayerAgent::processGetOrder (this=0x854a190, frame=0x8313678) at playeragent.cpp:502 | 07:22 |
mithro | #4 0x0810642c in PlayerAgent::processIGFrame (this=0x854a190, frame=0x8313678) at playeragent.cpp:97 | 07:22 |
mithro | #5 0x080d5f88 in PlayerConnection::inGameFrame (this=0x840e388) at playerconnection.cpp:288 | 07:22 |
mithro | #6 0x080d7329 in PlayerConnection::process (this=0x840e388) at playerconnection.cpp:80 | 07:22 |
mithro | #7 0x080bee5a in Network::masterLoop (this=0x8131320) at net.cpp:334 | 07:22 |
mithro | #8 0x080afb58 in main (argc=3, argv=0xbfa70284) at main.cpp:135 | 07:22 |
llnz | ok | 07:23 |
llnz | type "up" | 07:23 |
mithro | (gdb) up | 07:23 |
mithro | #1 0xb7a2296f in Move::getETA (this=0x8558a90, ob=0x0) at move.cpp:67 | 07:23 |
mithro | 67 Fleet* fleet = ((Fleet*)(ob->getObjectData())); | 07:23 |
llnz | up again | 07:24 |
mithro | (gdb) up | 07:25 |
mithro | #2 0xb7a23bb0 in Move::createFrame (this=0x8558a90, f=0x855c120, objID=211, pos=0) at move.cpp:78 | 07:25 |
mithro | 78 turns = getETA(Game::getGame()->getObjectManager()->getObject(objID)); | 07:25 |
llnz | i guess there isn't an object with id 211 | 07:27 |
llnz | ahh | 07:27 |
llnz | i see the/a problem | 07:27 |
mithro | I want to see the AI colonise every planet | 07:28 |
* mithro ponders getting a movie | 07:29 | |
*** niphree has joined #tp | 07:32 | |
mithro | llnz: maybe some liberal use of asserts? | 07:32 |
mithro | hi niphree! | 07:32 |
niphree | hello | 07:32 |
mithro | niphree: got some stuff to commit? :) | 07:32 |
llnz | mithro: rather not use asserts, leaves state messy | 07:32 |
niphree | mithro: eee... not now :] I've just started working | 07:33 |
mithro | llnz: hrm? asserting things like that the object back from the objectManager is valid is probably good? | 07:34 |
llnz | yeah, was about to do that | 07:34 |
mithro | i'll be back in about 30 minutes | 07:36 |
mithro | going to go see if I can get a movie | 07:36 |
CIA-3 | llnz tpserver-cpp * rbe6e54f3ad8b /modules/games/minisec/move.cpp: | 08:04 |
CIA-3 | Possible fix to 1762596, deref NULL in minisec move. | 08:04 |
CIA-3 | This locally protects against and logs objects that are not found. Full fix | 08:04 |
CIA-3 | would be to make it impossible to happen in any order, not just move in | 08:04 |
CIA-3 | minisec. | 08:04 |
mithro | back | 08:06 |
mithro | llnz: should I give that a go? | 08:06 |
llnz | yeah | 08:06 |
*** tuna-fish has quit IRC | 08:07 | |
mithro | what is actually causing the problem? | 08:08 |
llnz | maybe wrong objectid/orderqueueid sent from client, or objectid/orderqueueid missmatch in tpserver-cpp | 08:08 |
llnz | going to fix the latter properly in a minute | 08:09 |
mithro | another segfault! | 08:12 |
mithro | just got https://sourceforge.net/tracker/index.php?func=detail&aid=1762603&group_id=132078&atid=723099 | 08:13 |
tpb | <http://ln-s.net/l_h> (at sourceforge.net) | 08:13 |
mithro | Program received signal SIGSEGV, Segmentation fault. | 08:13 |
mithro | [Switching to Thread -1211857200 (LWP 27330)] | 08:13 |
mithro | 0x080c88aa in IGObject::getID (this=0x0) at object.cpp:75 | 08:13 |
mithro | 75 return id; | 08:13 |
mithro | (gdb) bt | 08:13 |
mithro | #0 0x080c88aa in IGObject::getID (this=0x0) at object.cpp:75 | 08:13 |
mithro | #1 0xb7ab0ccf in MinisecTurn::doTurn (this=0x8195738) at minisecturn.cpp:213 | 08:13 |
llnz | oh, that's a more interesting one | 08:14 |
mithro | (gdb) up | 08:14 |
mithro | #1 0xb7ab0ccf in MinisecTurn::doTurn (this=0x8195738) at minisecturn.cpp:213 | 08:14 |
mithro | 213 objectmanager->doneWithObject(ob->getID()); | 08:14 |
mithro | (gdb) print ob | 08:14 |
mithro | $1 = (IGObject *) 0x0 | 08:14 |
llnz | print itcurr | 08:15 |
mithro | (gdb) print itcurr | 08:16 |
mithro | $2 = {_M_node = 0x83f19d0} | 08:16 |
llnz | odd | 08:17 |
mithro | if(ob != NULL && (ob->getType() == planettype || ob->getType() == fleettype)){ | 08:17 |
mithro | why do you check ob is null there? | 08:17 |
mithro | (line 197) | 08:17 |
daxxar | mithro: just fyi, you could see 'ob' from the first line of the sigsegv; IGObject::getID (this=0x0). :-) | 08:17 |
llnz | because the last of the "if" statement would segfault if ob is null | 08:18 |
mithro | daxxar: I guess so :) | 08:18 |
llnz | i see the mistake | 08:18 |
llnz | will fix it now | 08:18 |
mithro | objectmanager->doneWithObject(ob->getID()); | 08:18 |
mithro | that will segfault with null? | 08:18 |
mithro | (well it does segfault with null) | 08:18 |
mithro | so shouldn't the if contain that? | 08:19 |
CIA-3 | llnz tpserver-cpp * r230f28ab83c5 /modules/games/minisec/minisecturn.cpp: | 08:20 |
CIA-3 | Protect the whole block against null pointer in MinisecTurn. | 08:20 |
CIA-3 | Hopefully fixes 1762603. | 08:20 |
CIA-3 | llnz tpserver-cpp * rb4422430fe98 /tpserver/playeragent.cpp: | 08:30 |
CIA-3 | For TP03 getOrder, get orderqueueid from object, not direct from frame. | 08:30 |
CIA-3 | This should make orderqueueids easier to manage and work with, and not | 08:30 |
CIA-3 | worry rulesets about backward compatability with TP03 and before, focusing | 08:30 |
CIA-3 | only on TP04 now. | 08:30 |
mithro | ? | 08:30 |
mithro | does that fix a bug? | 08:31 |
llnz | maybe | 08:31 |
mithro | llnz: what is this | 08:38 |
mithro | (False, 'OrderQueue failure.') | 08:38 |
mithro | ? | 08:38 |
llnz | not sure, looking now | 08:38 |
llnz | unable to add order to orderqueue | 08:39 |
mithro | another segfault | 08:40 |
mithro | ohh, this segfault is a bit weird | 08:40 |
mithro | tpserver-cpp> | 08:40 |
mithro | Program received signal SIGPIPE, Broken pipe. | 08:40 |
mithro | [Switching to Thread -1212049712 (LWP 30897)] | 08:40 |
mithro | 0xffffe410 in ?? () | 08:40 |
mithro | (gdb) bt | 08:40 |
mithro | #0 0xffffe410 in ?? () | 08:40 |
mithro | #1 0xbfb1ae48 in ?? () | 08:40 |
mithro | #2 0x080d7148 in PlayerTcpConnection::verCheckLastChance (this=0x88c1fc0) at playertcpconn.cpp:323 | 08:40 |
mithro | #3 0x080d8289 in PlayerTcpConnection::processWrite (this=0x88c1fc0) at playertcpconn.cpp:111 | 08:40 |
mithro | #4 0x080d847d in PlayerTcpConnection::sendFrame (this=0x88c1fc0, frame=0x8b3f1d8) at playertcpconn.cpp:97 | 08:40 |
mithro | #5 0x08105393 in PlayerAgent::processGetObjectById (this=0x8a376d8, frame=0x8b35fc0) at playeragent.cpp:248 | 08:40 |
mithro | #6 0x081054a9 in PlayerAgent::processIGFrame (this=0x8a376d8, frame=0x8b35fc0) at playeragent.cpp:90 | 08:40 |
mithro | #7 0x080d5878 in PlayerConnection::inGameFrame (this=0x88c1fc0) at playerconnection.cpp:288 | 08:40 |
mithro | #8 0x080d6c19 in PlayerConnection::process (this=0x88c1fc0) at playerconnection.cpp:80 | 08:40 |
mithro | #9 0x080be74a in Network::masterLoop (this=0x8130320) at net.cpp:334 | 08:40 |
mithro | #10 0x080af448 in main (argc=3, argv=0xbfb1b334) at main.cpp:135 | 08:40 |
mithro | whats a SIGPIPE? | 08:41 |
llnz | not segfault, SIGPIPE | 08:41 |
llnz | signal pipe is given when writing to a closed socket | 08:41 |
llnz | it is not suposed to happen | 08:41 |
mithro | hrm, I just typed cont and it seemed to work | 08:41 |
mithro | 2007-07-28 22:13:26 < Error > underlying write, tcp, error is: Broken pipe | 08:42 |
mithro | 2007-07-28 22:13:26 < Error > Socket error writing | 08:42 |
llnz | yeah, sig pipe shouldn't exit | 08:42 |
mithro | llnz: how does one change the turn processing time? | 08:42 |
llnz | int32_t PlayerTcpConnection::verCheckLastChance(){ | 08:43 |
llnz | return -1; | 08:43 |
llnz | } | 08:43 |
llnz | odd | 08:43 |
llnz | mithro: to make the turns closer together? | 08:43 |
mithro | llnz: actually to make the further apart :) | 08:43 |
llnz | oh | 08:43 |
llnz | on the console: "settings set turn_length_over_threshold 1200" (1200 = 20minutes) | 08:44 |
llnz | in the config file: "turn_length_over_threshold = 1200" | 08:44 |
llnz | on the command line (overridden by config): "--turn_length_over_threshold 1200" | 08:44 |
mithro | llnz: is there a way to figure out the number of objects on the server? | 08:49 |
llnz | avahi and metaserver are both told | 08:50 |
mithro | TXT objs = 557 | 08:50 |
llnz | i will be adding a "statistics" command on the console for the number of players, objects, orders, etc, etc | 08:51 |
mithro | yay managed to get to turn 156 | 08:51 |
CIA-3 | llnz tpserver-cpp * r133d38185d80 /tpserver/playeragent.cpp: Better fail frame string for failure to add order. | 08:55 |
mithro | hrm tpserver-cpp is running at 100% | 08:58 |
mithro | even when not doing turn processing | 08:58 |
llnz | odd, what does the console/log show? | 08:58 |
CIA-3 | llnz tpserver-cpp * r97ba80ea01b9 /tpserver/playeragent.cpp: Similar backward support for RemoveOrder and ProbeOrder as GetOrder has. | 09:00 |
mithro | llnz: not a lot | 09:05 |
mithro | I think it has to do with the SIG_PIPE | 09:05 |
llnz | could be | 09:06 |
* llnz wanders off | 09:07 | |
llnz | later all | 09:07 |
*** llnz has quit IRC | 09:07 | |
*** JLP has quit IRC | 09:54 | |
*** TBBle has quit IRC | 10:16 | |
*** TBBle has joined #tp | 10:16 | |
*** JLP has joined #tp | 10:40 | |
mithro | hey JLP | 10:43 |
JLP | mithro: ahoy | 10:43 |
*** niphree has quit IRC | 12:08 | |
*** tuna-fish has joined #tp | 14:06 | |
*** zipola has quit IRC | 14:12 | |
*** zipola has joined #tp | 14:18 | |
CIA-3 | mithro tpsai-py * r6a803f91868a / (profile-output.py tpsai-py): Added profiling. | 15:49 |
CIA-3 | mithro tpsai-py * r43f9a201756c /tpsai-py: | 15:49 |
CIA-3 | Fix up tpsai-py so it works. | 15:49 |
CIA-3 | - Now look at the order to figure out ship ids. | 15:49 |
CIA-3 | mithro tpsai-py * r053ce5b28644 / (things.py tpsai-py): Some checks to make sure the AI is doing what it's suppose to. | 15:49 |
CIA-3 | mithro tpsai-py * rd2dfda8bcd4c /tpsai-py: | 15:49 |
CIA-3 | Added persisence mode. | 15:49 |
CIA-3 | Check move/colonise order and don't aways delete and add. | 15:49 |
*** tpb has joined #tp | 18:54 | |
*** ChanServ sets mode: +o tpb | 18:54 | |
*** xdotx has quit IRC | 20:48 | |
*** xdotx has joined #tp | 21:55 |
Generated by irclog2html.py 2.5 by Marius Gedminas - find it at mg.pov.lt!