#bitfighter IRC Log

Index Search ←Prev date Next date→

IRC Log for 2013-07-20

Timestamps are in GMT/BST.

00:58:12raptor Quit ()
01:35:34koda has joined
02:04:08LordDVG has joined
02:07:01Flynnn Quit (Quit: This computer has gone to sleep)
02:29:38Nothing_Much Quit (*.net *.split)
02:31:12Nothing_Much has joined
02:31:12Nothing_Much Quit (Changing host)
02:31:12Nothing_Much has joined
03:05:55Nothing_Much Quit (*.net *.split)
03:05:55koda Quit (*.net *.split)
03:06:48Nothing_Much has joined
03:06:48koda has joined
03:23:56Nothing_Much Quit (*.net *.split)
03:23:56koda Quit (*.net *.split)
03:25:26LordDVG Quit (Read error: Connection reset by peer)
03:28:38koda has joined
03:30:51Nothing_Much has joined
03:30:54Nothing_Much Quit (Changing host)
03:30:54Nothing_Much has joined
03:48:32koda Quit (Remote host closed the connection)
03:49:29koda has joined
03:56:47LordDVG has joined
04:00:52LordDVG Quit (Remote host closed the connection)
04:49:15koda Quit (Quit: koda)
05:27:39Watusimoto has joined
07:12:09koda has joined
07:31:19Skybax has joined
07:31:19Skybax Quit (Client Quit)
07:37:52Watusimoto Quit (Ping timeout: 252 seconds)
09:01:24raptor has joined
09:01:24ChanServ sets mode +o
10:04:34thread_ has joined
10:04:55thread_Sorry I missed that party. How'd it go?
10:05:04raptorHi
10:05:15raptorIt was OK, only about 5 or 6 of us most of the time
10:05:28thread_I see
10:06:28thread_hey question: in the Lua documentation there are some ScoringEvents. How are those supposed to be used?
10:07:00raptorhmm... i'm not exactly sure. let me look
10:07:11thread_Also, It's missing an event for a soccer goal
10:09:34raptori'm not even sure it's used...
10:09:42raptorlooks quite unfinished..
10:09:57thread_hmmmmkay
10:10:42thread_In that case, it is possible to get the teams' scores somehow?
10:10:53raptoryes, let me get you a snippet...
10:12:22raptorhere's copypasta from a levelgen: http://pastie.org/pastes/8158909/text
10:12:26raptorhave to go, back soon...
10:12:33thread_thanks cya
10:13:54bobdaduck has joined
10:14:21bobdaduckSup, fresh dudes?
10:14:31bobdaduckHows my homeslices doin' up in here.
10:14:59thread_IT'S THE UGLY DUCK!!!!! Wait no, it's just bob
10:21:58thread_Hi bob
10:47:28bobdaducksup
11:00:52Nothing_Much Quit (Quit: l8r)
11:01:05Nothing_Much has joined
11:01:06Nothing_Much Quit (Changing host)
11:01:06Nothing_Much has joined
11:04:42raptorhello again
11:10:09thread_hey raptor, was that code snippet you sent me for bots or levelgen?
11:10:15raptorlevelgen
11:10:26raptorbut TeamInfo() should work for both
11:10:40thread_ok, I just didn't see a subscribe to tick and was wondering
11:10:42raptoryeah, actually, that should with both
11:10:47raptoroh really?
11:10:48raptoroops
11:10:50raptori left that out
11:10:55thread_lol ok
11:11:00raptoryeah, the subscribe is needed for levelgen...
11:16:19raptorFYI thread_: https://code.google.com/p/bitfighter/source/detail?r=638ae7405a6e
11:16:31raptor019 will have an onScoreChanged event
11:17:43raptorwould this address your issue of usage?
11:19:21raptorback later!
11:19:23raptor Quit ()
11:22:24Nothing_Much Quit (Ping timeout: 248 seconds)
11:24:17Nothing_Much has joined
11:24:18Nothing_Much Quit (Changing host)
11:24:18Nothing_Much has joined
11:26:19thread_ Quit (Ping timeout: 250 seconds)
11:51:03Watusimoto has joined
12:02:08BFLogBot Commit: 6b9085734454 | Author: watusimoto | Message: Additional messages for soccer scoring
12:02:09BFLogBot Commit: 7f3aa8948967 | Author: watusimoto | Message: Fix tests
12:02:11BFLogBot Commit: 0a88ccd1c6e6 | Author: watusimoto | Message: Whitespace
12:02:12BFLogBot Commit: 1207483fdb7a | Author: watusimoto | Message: Fix compile problem... tsk tsk
12:02:14BFLogBot Commit: efa1a4616591 | Author: watusimoto | Message: Pass games played count from master down to clients... compiles but untested
12:04:33raptor has joined
12:04:34ChanServ sets mode +o
12:05:16Flynnn has joined
12:45:19Watusimotohi raptor
12:45:28raptorbwahahaha
12:45:30WatusimotoI tried upgrading the master server... did not go well
12:45:38Watusimotooriginal has been restored
12:45:39raptor(reading level reviews)
12:45:51Watusimotooh, good idea!
12:46:49raptora few people should get the criitized-by-Quartz badge again...
12:49:55Watusimoto:-)
12:50:10Watusimotobtw, saw bobdaduck's thread on the raptor functions
12:50:24Watusimotodid you know we have a geometry library that does translation, rotation, and scaling?
12:51:10raptori actually didn't until about 2 weeks ago...
12:51:27raptorthat would have been nice...
12:52:33Watusimotohow was the party?
12:57:09raptorwe had 4 -6 people!
12:57:17raptorwhat did your kids think?
13:00:50Watusimotothey thought it was fun, but were surprised how few people were there
13:01:22Watusimotoquartz has interesting reviews... he doesn't hold back!
13:04:39Watusimotothough I kind of have to agree with his 0/10 rating
13:09:31Flynnn Quit (Quit: This computer has gone to sleep)
13:09:56Flynnn has joined
13:12:01raptorheh
13:17:32Watusimotoso we have disucssion, then do voting sometime soon?
13:17:51raptortraditionally voting was started on the monday after the hangover
13:17:57Watusimotook, great
13:18:04raptorbut i don't mind changing tradition
13:18:17Watusimotoalso... is there supposed to me a motd other than "welcome to bitfighter"? I am nervous I broke something
13:18:26raptorin fact, about the contest party, I think we need to change something about it to get people to play more..
13:18:36Watusimotowhat do you mean?
13:18:38raptoraugh!
13:18:43raptori forgot the MOTD for the party
13:18:52raptorwhat i mean
13:18:52Watusimotoas did I; and I forgot to send out email
13:19:00Watusimotoso we both messed up
13:19:28Watusimotowe need a checklist
13:19:30raptortraditionally we open the contest server up on friday morning or so, let people poke around, then play semi-unorganized at the party
13:19:43raptormaybe the party should be the unveiling?
13:19:50raptorto get more people to play, etc..
13:20:02Watusimotodo you think anyone didn't come to the party because of the early unveiling?
13:20:08LordDVG has joined
13:20:10raptori think so yes
13:20:14Watusimotoplaying in the group is the real treat, no?
13:20:23raptorI would think so
13:20:30raptorbut I'm not sure...
13:20:43raptorI'm not a good judge of this
13:20:46Watusimotowell sure, it kind of makes sense to do the unveiling at the party
13:20:55Watusimotoso let's do that next time
13:21:02Watusimotoit will heigten the anticipation during the event
13:21:05raptorI want to do what's *best*, whatever that may be...
13:21:25Watusimotoso yes, I'm on board with that change
13:21:30raptorok
13:21:38raptorlet me start a contest checklist...
13:21:43Watusimotoput the server up in the morning with a password for testing amongst a select few
13:21:54Watusimotothe disable the pw at party time
13:21:59raptoryes, good idea
13:22:09raptor!contest
13:22:33Watusimotoas for what's best in these situations... well... we're both engineers, so we shouldn't be deciding :-)
13:23:05Watusimotobtw, I really like the review template idea
13:23:22Watusimotomakes things look all neat and clean
13:23:36Flynnn Quit (Quit: Leaving)
13:25:56Watusimotoit doesn't matter from which folder I start the master, does it?
13:26:06Watusimoto(i.e. if I'm in the master folder itself, or somewhere else)
13:28:49raptornot if you use my start script
13:28:59raptorbut if you call the binary directly, it does
13:29:02raptor!contest
13:29:05BFLogBotSee the contest checklist here: http://bitfighter.org/wiki/index.php/Contest_checklist
13:30:49raptorok that contest checklist is up
13:30:51bobdaduck Quit (Remote host closed the connection)
13:30:54raptorvery rudimentary
13:30:58raptorfeel free to add to it..
13:31:28Watusimotook, I'll use the script
13:31:37raptor:)
13:31:43Watusimotobut there is a problem with the script
13:32:03raptoryou need to be the 'master' user
13:32:06Watusimotoit won't affect me at the moment...
13:32:08Watusimotoyes
13:32:35Watusimotogood grief
13:32:40raptorhehe
13:32:44Watusimotonow i'm totally lost
13:32:57Watusimotoin update_recompile_restart_master.sh
13:33:03raptoraach
13:33:09raptorok
13:33:09Watusimotowe have these lines
13:33:10Watusimotoif [ $? -ne 0 ]; then
13:33:10Watusimotoecho "==> Compile error. FIX YOUR CODE. Old master binary is still left,"
13:33:10Watusimotoecho " you should restart it in the mean time"
13:33:10Watusimotofi
13:33:22Watusimotoso you compile, and hit a compile error
13:33:32Watusimotothen it just continues on
13:33:43Watusimotoshould it not stop at this point?
13:33:50raptorI can make it do that...
13:34:04Watusimotohow do you stop a script? exit?
13:34:12raptorok
13:34:15raptorudpated
13:34:25Watusimotook, another problem
13:34:36Watusimotopopd # Restore the galactic balance
13:34:46Watusimotodoesn't work
13:34:53Watusimotothere are more pushds that popds
13:35:06Watusimotothings have taken a slight turn for the worse since i ran that script
13:35:35Watusimoto3 pushds and one popd
13:35:37raptorhave you been editing it?
13:35:39Watusimotono
13:35:43WatusimotoI've changed nothing
13:36:00Watusimotobut I could remove the two inner pushds and change them to cds
13:36:02raptoruhh... it looks like people have removed my popds??
13:36:06raptorno no
13:36:09Watusimotowell, I have not
13:37:07Watusimotobut... my proposed fix would work!
13:37:32Watusimotoah, exit 1
13:37:34Watusimotogood call
13:37:50raptorok, you may fix the script as I've been pulled away temporarily...
13:37:54raptor(sorry0
13:38:39Watusimotono worries
13:42:38WatusimotoI'm seeing this pop up in the logfile
13:42:39Watusimoto!Failure writing stats to database: Unknown column 'turret_kills' in 'field list'
13:42:46Watusimotoxxx !Failure writing stats to database: Unknown column 'turret_kills' in 'field list'
13:43:10raptorthat might be from kaen's php script?
13:43:15raptorfor the stats
13:43:16Watusimotoseems to come from here insertStatsPlayer(
13:43:34Watusimotowhich inserts into stats_player
13:43:38raptormight it be from an old client running on old schema?
13:43:45Watusimotobut that column exists in stats_player
13:43:56Watusimotothe error is on the master
13:46:07Watusimotoodd... it first appeared in the log in June
13:46:21raptorhuh
13:46:22Watusimotobut stats are still being written to that table
13:46:35Watusimotoah
13:46:46Watusimotoalways seems to happen after a server disconnect line is logged
13:47:25Watusimotoso what happens when the server disconnects? who is writing stats to the logfile at that point?
13:47:40Watusimotocould it be trying to log to a sqlite table or something that is not up to date?
13:48:47raptoroh - yeah, sqlite could be the problem
13:49:11Watusimotobut are we sending stats to sqlite on the master in addition to mysql?
13:49:27raptorwhat log are you looking at?
13:49:34raptor_master.log?
13:49:57raptoron the master, no
13:50:03raptoronly mysql
13:50:18raptorbut sqlite might be built in...
13:50:29raptorback in a bit...
13:50:55WatusimotoI know you're not here, will keep typing notes as I find stuff
13:54:23WatusimotoI'm trying to figure out where the sqlite database might reside, if it in fact exists
13:54:53Watusimotoaha
13:54:56Watusimoto/home/master/bitfighter/exe/stats.db
13:54:59Watusimotolooks promising
13:56:38raptorwhack it
13:56:41Watusimotook
13:56:45Watusimotowhack it?
13:56:50Watusimotojust delete the file?
13:56:53raptoryes
13:56:58Watusimotois it just there as backup?
13:57:02raptorno
13:57:08raptorcompletely unneeded
13:57:12Watusimotook
13:57:22Watusimotohopefully that is where those error msgs are cmoing from
13:57:25Watusimotothey make me nervous
13:57:30raptorbut if it's being written to, then that is odd...
13:57:41raptorthen both database types are being written to..
13:57:59Watusimotowell... one is not :-)
13:58:20WatusimotoI moved the file to /tmp for the moment, in case you change your mind in the next few minutes :-)
13:58:25raptorheh
13:58:29raptorok, let me play a game...
13:58:31WatusimotoI should probably restart the master, no?
13:58:40raptornahhh
13:58:43Watusimotooook!
13:58:46Watusimotook!
13:58:48raptorlet me play a game.. 10 seconds to database write
13:58:50Watusimotobut you should host
13:59:03raptordone
13:59:06raptoranything?
13:59:10WatusimotoCLIENT_INFO 2013-07-20 Sat 13:58:00 6 6800 IP:69.169.172.147:34963 <None>
13:59:10WatusimotoAuthenticated user raptor
13:59:10WatusimotoFailure writing stats to database: Unknown column 'turret_kills' in 'field list'
13:59:17raptorbooo
13:59:38Watusimoto[master@bitfighter ~]$ ls /home/master/bitfighter/exe/stats.db
13:59:38Watusimotols: cannot access /home/master/bitfighter/exe/stats.db: No such file or directory
13:59:38Watusimoto[master@bitfighter ~]$ Failure writing stats to database: Unknown column 'turret_kills' in 'field list'
13:59:46Watusimotoso the stats.db is not back
13:59:53Watusimotobut the error is still coming up
14:00:10raptorso we know it comes from 018a..
14:00:21Watusimotolet me restart the master and see if it fixes it
14:00:28raptorok
14:00:29Watusimotobecause it could be caching sqlite stuff in memory
14:00:31Watusimotomaybe
14:00:48Watusimotorestarted
14:00:55raptorok
14:00:57Watusimototry again?
14:01:01raptorok
14:01:08raptor6 seconds
14:01:33raptorhmmm.... not connected to master
14:01:34WatusimotoSERVER_CONNECT 2013-07-20 Sat 14:01:16 The Little_Apple Tree With hand picked levels!
14:01:34WatusimotoSERVER_INFO 2013-07-20 Sat 14:01:16 6 6800 IP:76.116.249.209:28000 <None>
14:01:34WatusimotoSERVER_CONNECT 2013-07-20 Sat 14:01:21 ZenerNet Private gaming network. DO NOT JOIN!!
14:01:34WatusimotoSERVER_INFO 2013-07-20 Sat 14:01:21 6 6800 IP:69.36.210.56:28000 <None>
14:01:35WatusimotoCLIENT_CONNECT 2013-07-20 Sat 14:01:22 BlackCat
14:01:38WatusimotoCLIENT_INFO 2013-07-20 Sat 14:01:22 6 6800 IP:69.36.210.56:60498 <None>
14:01:44Watusimotono error messages
14:01:53raptor3 secs
14:02:00raptornow?
14:02:05WatusimotoAuthenticated user raptor
14:02:05WatusimotoFailure writing stats to database: Unknown column 'turret_kills' in 'field list'
14:02:06Watusimotodang
14:02:39Watusimotostats.db was not recreated
14:02:45raptorinteresing... when master restarts, the hosted dedicated servers are detected as adress 127.0.0.1...
14:02:51raptorok, so not sqlite..
14:03:23Watusimotoagreed
14:03:23raptorso 018a is sending turretKills
14:03:29Watusimotofind |grep *.db
14:03:29Watusimotoreturns nothing
14:03:46Watusimotothe master should be writing turret kills
14:03:57Watusimotolet me check the daabase and see if that column is ever populated
14:04:05Watusimotoit is
14:04:16Watusimotoso turret kills are being logged properly
14:04:24Watusimotoand yet... the message still appears
14:05:47raptordid BFLogBot miss some commits??
14:05:48BFLogBotThe only skills I have patience to learn are those that have no real application in life. -- Calvin
14:06:15raptoroh no, i see them in the logs (i wasn't connected)
14:06:40Watusimotoyou can't run with my latest code without the master being updated
14:07:07Watusimotothat message has to be coming from insertStatsPlayer()
14:07:08raptorbah
14:07:09raptorok
14:07:28Watusimotoand insertStatsPlayer() has to be working (or else we'd see no stats in the mysql)
14:07:43raptormaybe the error is something other than we think
14:07:43Watusimotoso the only way it can be both broken and working is if it is called twice
14:07:51Watusimotoimpossible!
14:07:58raptor:)
14:09:35Watusimotoand... it doesn't look like it's being called twice
14:09:45raptorhttp://stackoverflow.com/questions/1346209/unknown-column-in-field-list-error-on-mysql-update-query
14:11:37Watusimotounless there are two DatabaseWriter instances
14:11:44Watusimotolooking at so...
14:12:27WatusimotoI don't think that's our issue
14:12:49Watusimotoeverything is using the same quoting
14:12:57Watusimotoand... remember... we know it works
14:13:05raptoryeah...
14:13:06raptorso...
14:13:09raptorsystem update!
14:13:30raptorman, the system is so much more responsive now that BFLogBot is in python...
14:13:30BFLogBotIf we wanted more leisure, we'd invent machines that do things less efficiently. -- Calvin's dad
14:13:31Watusimotooh
14:13:33WatusimotoI know
14:13:36Watusimotomaybe
14:13:47Watusimotohmmmm
14:13:50Watusimotomaybe not
14:13:54Watusimotono
14:14:07Watusimotomy thought was the message could be coming from the server, not the master
14:14:30Watusimotobecause the server could also be logging stats locally
14:14:38Watusimotousing mysql
14:14:53Watusimotobut two strikes agasint that... 1) mesgs appear in the master log
14:15:06Watusimotoand 2) msgs appear when you are hosting your server
14:16:43raptortime for printfs!
14:17:35LordDVG Quit (Remote host closed the connection)
14:17:37Watusimotofurther, it appears that sqlite is only used if gWriteStatsToMySql is false... and the name at least suggest that's a global, so it seems unlikely that we have two instances of the database, one of which is sqlite
14:17:44Watusimotothere's a problem with printfs
14:18:12Watusimotowe (I) don't knwo which version of the master is running, so I don't know how to update the code to match it
14:18:25Watusimotothe source on the master is now what I just checked in
14:18:34Watusimotowhich doesn't work with the 018a clients
14:18:45Watusimoto(which is why I reverted to the previous binary)
14:19:06Watusimotoso we have the correct binary, but no source for it
14:19:34Watusimotoperhaps we can see when the last changes to the master were and guess what code was used to compile the current binary...
14:20:13WatusimotogWriteStatsToMySql is indeed a global
14:20:18Watusimotoso it can only have one value
14:21:11Watusimotoso getDatabaseWriter() will always behave the same even if it is called twice and creates two different databaseWriter objects... they will both attempt to write to the same db
14:21:23Watusimotowhich leads me to conclude that this is not a sqlite problem
14:21:37Watusimoto(which is what you probably concluded 20 mins ago)
14:23:36Watusimotowe seem to create and discard DatabaseWriters all over the place... but as I noted before, they should all be sqlite or none should be
14:27:02Watusimotothe Failure writing stats to database message is only printed in one place... let me look at that
14:27:26Watusimotoonly gets printed if insertStatsGame throws
14:28:25Watusimotocould it be writing and yet still somehow throwing an error saying it couldn't write???
14:32:16Nothing_Much Quit (Ping timeout: 248 seconds)
14:32:55Watusimotoany idea what the player_mv table is?
14:36:40Watusimotook, this might be a problem
14:37:18Watusimotowe have a record in stats_player, with a stats_player_id of 208824 (the largest value in the table)
14:37:41Watusimotothis player killed 12 and died 10 times, which suggests he shot
14:37:58Watusimotoin stats_player_shots
14:38:29Watusimotothe max stats_player_id is 108783
14:38:32Watusimotosorry
14:38:41Watusimoto208783
14:39:47Nothing_Much has joined
14:39:47Nothing_Much Quit (Changing host)
14:39:47Nothing_Much has joined
14:39:56WatusimotoI think those two numbers shuold match
14:41:25Watusimotothe reason this is interesting is because in insertStatsPlayer(), which, when it throws, displays the error we are seeing, it first runs the query that involves turretKills, then does the shots insertion
14:41:32Watusimotoif the first is throwing, the second will never happen
14:41:59Watusimotothough the only way I can rectify this with the error message we're seeing is if the first both throws and works, and the second is never run
14:42:08Watusimotoand... that doesn't make a lot of sense
14:45:34Watusimotook, last changs to master code seem to be by you on June 15.
14:46:20Watusimotodang
14:46:31Watusimotowhen I tried updating the master, I lost the time stamp on the binary
14:46:39Watusimotobut I recall it was late June
14:47:00Watusimotowhich stands to reason that the master must have been built with source from version 7596 or so
14:47:16Watusimotoso let me try updating the source to that version, then I can start with the printfs
14:47:28Watusimotoso... how to do this
14:48:51Watusimotohg revert -r 7596?
14:50:14Watusimotono
14:50:20Watusimotohg update 7596?
14:50:25Watusimotoprobably
14:51:03Watusimotoand... cmake fails!
14:53:22Watusimotomaybe hg update?
14:53:35kaentry deleting the CMakeCache.txt file
14:53:41kaenin the build directory
14:53:46Watusimotothat helped
14:53:49Watusimotooh hi
14:53:53kaenhello
14:53:55Watusimotohg update seemed to fix things
14:54:05WatusimotoI reverted, but did not update
14:54:12Watusimotowhich seems like a sad state of affairs
14:54:21Watusimotohave you read any of my monologue?
14:54:27Watusimotoweird stuff in the database
14:54:28kaenhmm. nope
14:54:30kaenlooking...
14:54:40Watusimotogetting an error message that I can't fathom
14:54:56Watusimotobasically, I get a msg saying it can't write to the player-stats table
14:55:02Watusimotoyet... it is writing
14:55:10Watusimoto(the master being the "it" here)
14:55:44Watusimotothis is the error message we're getting:
14:55:45WatusimotoFailure writing stats to database: Unknown column 'turret_kills' in 'field list'
14:55:57Watusimotothe column is there, and is being populated
14:56:14Watusimotoso I am now at the hacking the master and inserting random printfs
14:56:33kaengross
14:58:31Watusimotoindeed
15:02:50kaenhmm
15:03:06kaenso the error is thrown, but everything appears to work Watusimoto ?
15:04:26kaenif can try it now, I think I might have fixed it...
15:05:16kaenno turret_kills in my player_mv table, which is written to on insertion to stats_player via a trigger
15:05:28kaenchecking now if the trigger tries to use that table...
15:06:30Watusimotowhat is player_mv?
15:07:28kaenit's for the stats page
15:07:55kaenit's an aggregate table of the player stats so that we don't have to aggregate for every request
15:08:02Watusimotook... I found error messages in the log from mid June
15:08:14Watusimotoso it's probably had problems since then
15:08:29Watusimotoand so that explains everything, actually
15:08:33kaenafter reviewing my triggers, I actually don't think that's the cause anymore :x
15:08:45kaendoes the error message still occur?
15:08:49Watusimotowhy the stats are being added, but the later stuff might not be running
15:08:58Watusimototesting
15:09:01kaenok
15:09:26kaenif it does not occur, or changes to a different column then it is indeed my fault
15:09:53WatusimotoFailure writing stats to database: Unknown column 'ff_kills' in 'field list'
15:09:57Watusimotodifferent error
15:09:59kaenyay!
15:10:02kaenit's my fault!
15:10:06Watusimotoor not
15:10:27WatusimotoI added some new columns to the player stats, and did not know about player_mv
15:10:32kaenbah
15:10:32Watusimotoso I did not add them there
15:10:40kaenI added some columns to player_mv :x
15:10:50kaenturret_kills, to be specific
15:10:52Watusimotomv == materialized view?
15:10:56kaenyeah
15:11:00kaenbut in quotes :P
15:11:01Watusimotothere were several new columns
15:11:04Watusimotoright
15:11:12Watusimotodo you need all the enw columns?
15:11:19kaenI believe so
15:11:24Watusimotoff_kills, obviously
15:11:33kaenbut I just haven't updated the stats page for the new columns at all yet...
15:11:40WatusimotoastKills) + ", " + itos(playerStats->turretsEngr) + ", " +
15:11:40Watusimotoitos(playerStats->ffEngr) + ", " + itos(playerStats->telEngr) + ", " +
15:11:40Watusimotoitos(playerStats->distTraveled)
15:11:49Watusimotowait
15:11:51Watusimotohold
15:12:05Watusimoto"turret_kills, ff_kills, "
15:12:05Watusimoto"asteroid_kills, turrets_engineered, "
15:12:05Watusimoto"ffs_engineered, teleports_engineered, "
15:12:05Watusimoto"distance_traveled
15:12:06Watusimotothese
15:12:26Watusimotowait
15:12:29Watusimotowill give you types
15:12:44Watusimoto" turret_kills integer NOT NULL,"
15:12:45Watusimoto" ff_kills integer NOT NULL,"
15:12:45Watusimoto" asteroid_kills integer NOT NULL,"
15:12:45Watusimoto" turrets_engineered integer NOT NULL,"
15:12:45Watusimoto" ffs_engineered integer NOT NULL,"
15:12:45Watusimoto" teleports_engineered integer NOT NULL,"
15:12:48Watusimoto" distance_traveled integer NOT NULL,"
15:13:09Watusimotomaybe switched_team_count INTEGER NULL,
15:13:16Watusimotobut you may already have that one
15:13:30bobdaduck has joined
15:14:02kaenokay let's give it a shot
15:14:11WatusimotoI've very glad you happened along... I never would haev found that
15:14:12Watusimototesting
15:14:38kaenI'm very to have inadvertently caused such a subtle and troublesome bug...
15:14:42kaenvery sorry*
15:15:24Watusimotolooks like it may be fixed
15:15:45kaenthere's no way the stats were aggregating correctly...
15:15:55kaenhah
15:15:56kaenindeed
15:16:13kaengood thing they got inserted into stats_player just fine :P
15:16:18Watusimotoyes
15:16:27kaenI wrote an all-at-once aggregator along with the triggers
15:16:27Watusimotowell, loadout and shot stats might not have worked
15:16:32kaenoh :x
15:16:41Watusimotobut they're less critical
15:16:44kaenyeah
15:16:49kaenokay I'll take a look
15:17:00kaenthat should at least stop the bleeding...
15:18:08Watusimotoso do we need to update player_dv to make up for all the stuff that wasn't inserted?
15:19:01kaenyeah, that's what I was just talking about
15:19:02Watusimotoyes, we do!
15:19:21WatusimotoI haev the only game for July!
15:19:36Watusimotook, so what can we do to protect ourselves form this in the future?
15:19:37kaenbut I have to update my aggregation script and triggers first
15:19:42Watusimotook
15:20:06kaenwell, we coult try each DB op atomically
15:20:13Watusimotoideas: 1) somehow make it clearer that player_mv needs to be udated when player_stats does (comments in the code, perhaps?)
15:20:28Watusimoto2) make a failure to insert not cascade
15:20:36Watusimoto(maybe not a good idea, not sure)
15:20:59Watusimoto3) make a failure to update player_mv somehow not throw an error (possible??)
15:21:29kaenI don't think SQL has try/catch :P
15:25:44kaenokay, running the aggregator
15:25:45kaen...
15:26:10Watusimotothe try catch is in c++
15:26:28kaenI was just being silly
15:26:28Watusimotowhat if... what if we didn't use a trigger, but coded the update directly in the master code?
15:26:33kaenyeah
15:26:35Watusimotothen the mechanism would be apparent at least
15:26:38kaenthat was my next suggestion
15:26:43Watusimotoi think we shoudl do that
15:26:59WatusimotoI'm actually int he process of tyring to update the master, so this would be a good time
15:27:12kaenhttps://code.google.com/p/bfstats/source/browse/#hg%2Futil
15:27:35kaenplayer_stats_triggers.sql and aggregate_player_stats.sql
15:28:00Watusimotothat will take a little bit of work to digest
15:28:22Watusimotobtw, my latest push will not work without an updated master, and the master changes don't work properly with 018a
15:28:48bobdaduckhallo
15:29:00Watusimotohi
15:29:37bobdaduckDoes watusimoto want to see some crazy levelgens?
15:29:55Watusimotoat the moment iI'm in a panic about the master
15:29:58bobdaducklol
15:30:04bobdaduckCan I panic too?
15:30:11Watusimotobut I do want to see them
15:30:13kaenokay, only the trigger is strictly necessary
15:30:22Watusimotothere was some good scripting stuff in the contest
15:30:24kaenwe can use the aggregator from the sql file itself
15:31:06Watusimotothis one: update_player_shots_stats ?
15:31:28kaenwe need both triggers in the trigger file
15:31:33kaenupdate_player_shots_stats and update_player_stats
15:31:44Watusimotooh, I see
15:31:54Watusimotoso those do what, flatten the table for easier access?
15:32:12kaenyes
15:32:38kaenon each insertion it updates the appropriate player's player_mv entry
15:33:48kaenbasically, if you can put the record being inserted into a variable called NEW, then you should be able to run everything between BEGIN and END
15:34:01kaenas a separate query
15:34:10kaenalternatively
15:35:26kaenactually I have no alternative.
15:36:48kodahi guys
15:36:50kodawhat's up
15:36:55kaencrisis mode
15:36:56bobdaducksup koda
15:36:58kaenwbu?
15:37:00bobdaduckcrisis mode!
15:37:13kaenactually the crisis has been mostly averted
15:37:37Watusimotook
15:37:38Watusimotowell
15:37:55Watusimotolooks like we only have shooting stats for bots since whenever this db error started
15:38:09Watusimotoplayer data was not recorded
15:42:04Watusimotoand loadout stats look like they're still not being recorded
15:43:21Watusimotoonly stats for repair bot seem to be recorded
15:43:23Watusimotoodd
15:44:00bobdaduckGRAVITY STACKS IS REBORN
15:45:17kaenWatusimoto, I do have an alternative after all
15:45:58kaenwhat if we keep the player_mv queries out of master and instead run the aggregator as a cron job each night
15:46:27kaenthat way there's no triggers to cause insertion failures, and we still keep player_mv logic out of master which really has no concern for it one way or the other.
15:47:01Watusimotook
15:47:06kaenthe downside is that the stats page won't be updated instantly, but rather periodically
15:47:17kaenthe aggregator takes about two minutes to run right now
15:47:25Watusimotowhat does the aggregator do?
15:47:30kaencould take even less if we didn't aggregator for all of time
15:47:39kaenthe same thing as the triggers, but in a single operation
15:47:51kaenrather than record-by-record
15:48:11Watusimotocould the aggregator only operate on new records?
15:48:30kaenthat could feasibly be done with a shell script
15:48:37Watusimotoi.e. where id > max(already aggrregated id)
15:48:40kaenyep
15:48:58kaenor maybe it could keep its own table
15:49:06kaenwith exactly one row and one column :P
15:49:10bobdaduckcan we show energy on the commanders chart?
15:49:12Watusimotothat would speed it up a fair bit, right?
15:49:20Watusimotobobdaduck: yes, I think so
15:49:26kaenoh yes
15:49:30kaenoh wait
15:49:31kaenderp
15:49:52kaenI just realized that it has to process all records for a time period at once...
15:50:07kaenso I'd have to tweak it considerably
15:50:15kaenbut let me investigate and get back to you
15:51:14kaenhmm. actually the aggregator has now been running for seven minutes...
15:51:32raptorhi again..
15:51:34kaenhello
15:51:37raptorsorry, i fell asleep on the floor
15:52:10bobdaduckhi raptor
15:52:19bobdaduckI've reached a perfect orbit on gravity stacks
15:53:03Watusimotobobdaduck: did you just change your loadout in-game?
15:53:10bobdaduckhuh?
15:53:19Watusimotoyou were playing, no?
15:53:24bobdaduckI'm playing right now, yeah
15:53:31Watusimotodid you change your loadout?
15:53:35bobdaduckI changed my loadout like
15:53:39Watusimotoduring the last level
15:53:39bobdaduckfive minutes ago?
15:58:16Watusimotoodd, I can't get any stats to show up in the table now
16:01:23Watusimotowell, dang it
16:01:26kaenon the stats page?
16:01:32Watusimotono new players are showing in the stat
16:01:33Watusimotos
16:01:35Watusimotono
16:01:40Watusimotoin the player_stats table
16:01:46kaencrud
16:01:48Watusimotonothing changed here
16:01:54kaenthat's likely because the aggregator is running
16:02:02Watusimotodid you change something about 5 mins ago that could have caused... oh
16:02:16kaenit drops the table when it starts
16:02:20kaenand then... cascading failures
16:02:26Watusimotothe table is there
16:02:39Watusimotostats_player is there
16:02:43kaenplayer_mv
16:02:45kaenis gone
16:02:49kaenso the trigger is erroring
16:03:00Watusimotobut I'm not seeing the exceptions I saw beore
16:03:01Watusimotobefore
16:03:05kaenhmm
16:03:30kaenmaybe the transactions are holding until it completes?
16:03:31Watusimotoand it usually inserted into player-stats fine, even when the trigger was broken
16:03:35Watusimotomaybe
16:03:42kaenbecause actually the player_mv table is fine
16:03:55Watusimotohow much longer until the process is finished, do you think?
16:04:32kaenwell it usually takes 14 minutes on my 2800ghz laptop for all the records until like last august
16:04:37kaener
16:04:42kaen2.8ghz
16:04:51Watusimotook
16:04:56Watusimotoso we wait
16:05:23Watusimotowe probably need to find a better way; that's a lot of crunching
16:05:31kaenI can definitely rewrite those triggers into an incremental aggregator
16:05:50kaenand then just run that periodically
16:05:53Watusimotoso why does the aggregator need to do everything at once?
16:06:04kaenbecause I wrote it as a dumb fall back
16:06:14Watusimotoin case the trigger fails?
16:06:18kaenit's faster than doing it all at once record-by-record though
16:06:18kaenyes
16:06:26Watusimotook, then leave it as is
16:06:35kaenif you re-inserted from a backup with the trigger in place it would take at least an hour
16:06:35Watusimotosince it's not meant to be used
16:06:37kaenI've tried that
16:06:50kaenbut I'll work on converting the triggers
16:06:51Watusimotoyuck
16:07:07Watusimotowell, with some thought, it does seem that a trigger is the right mechansim
16:07:25kaenyes, but it'd be better if it's run periodically
16:07:29Watusimotowe just need to be better about catching it when it falls down
16:07:38kaenrather than after each insert
16:07:50Watusimotowhy would that be better?
16:07:53kaenif we ran it like every 15 minutes it would take only seconds
16:08:06Watusimototrue
16:08:07kaenand there would be no detected failure in the master
16:08:15Watusimototrue
16:08:23kaenusing my not-yet-existent incremental aggregator
16:08:59Watusimotois there a way of running a trigger "out of order" or something, meaning it would run not as part of the transaction, but separately?
16:09:10kaenI have not looked into that
16:09:11Watusimotothat was not the right description
16:09:23kaenI think I understand
16:09:26Watusimotowhat would be ideal would be some sort of queued trigger
16:09:33kaenlike, it would trigger it and not care about the outcome?
16:09:34kaenoh
16:09:37Watusimotolike the trigger fires, and runs in the background
16:09:43Watusimotoand never explicitly returns
16:09:48Watusimotoyes
16:09:51kaenok yes
16:09:55kaenI have not looked into that
16:10:09Watusimotothen if it fails, it won't make the master fail
16:10:17kaenI have to go :x
16:10:21Watusimotoof course, if it failed, we'd need to know somehow
16:10:22Watusimotook
16:10:24kaenI'll be back in an hour or so
16:10:31WatusimotoI'll be alseep
16:10:33Watusimotohopefully
16:10:35Watusimoto:-)
16:10:41Watusimotothanks for your help!
16:10:53Watusimotobobdaduck: still around?
16:11:20bobdaduckyeah
16:11:24bobdaducknowait
16:11:25bobdaduckafk
16:11:26bobdaduck20 min
16:11:39Watusimotoyes, then, or no?
16:14:20bobdaduckokay back
16:14:37bobdaduckcan you repeat the question?
16:14:56Watusimotowant to show me your levelgens?
16:15:01bobdaduckyeah! Hosting
16:16:30bobdaduckwatusimoto coming?
16:16:36Watusimotojust a sec, yes
16:20:05Nothing_Much Quit (Quit: l8r)
16:23:24Tttt7858 has joined
16:23:31Tttt7858Hi.
16:24:16Watusimotohi
16:24:28Tttt7858^ Symbols, dots, stars?
16:25:25Tttt7858I'd like to figure out how many tiers, 10 tiers? or 3 tiers each with 3 levels adding up to nine levels
16:26:16Tttt7858first three levels could be colored ^ symbols second three could be dots, last three could be stars
16:26:55Tttt7858I think that could work
16:27:05Watusimotodid you see the thing I pasted on pastie?
16:27:33Tttt7858yes
16:28:38WatusimotoTttt7858: maybe -- it needs to be compact
16:28:53Watusimotochevrons can stack like seargant's stripes
16:29:32Tttt7858Eh
16:29:43Tttt7858It's sounding a bit like ranks now.
16:29:45Tttt7858hmm
16:30:09Tttt785810 Chevrons is um, a bit unrealistic, even though bitfighter isn't either
16:30:25Watusimotono, only 1,2, or 3
16:30:30Watusimotothen they change color and reset
16:30:31Tttt7858Hmm
16:30:56Tttt7858Maybe first 3 levels chevrons, second three are dots, and last 3 are stars
16:31:06thread_ has joined
16:31:20thread_I solemnly swear I am up to no good
16:31:24Tttt7858<<< . . . ***
16:31:33thread_lol
16:31:56Watusimotomaybe
16:32:08Tttt7858Hmm
16:32:11WatusimotoI need to try some things and see what works
16:33:07Tttt7858<) <)) <))) <<) <<)) <<))) <<<) <<<)) <<<)))
16:34:25Watusimoto:-)
16:34:30thread_Questions: can I use levelgens to change if engineer is enabled? If not, has there been a ticket entered for this?
16:35:23WatusimotoI don't think so, on both counts
16:35:26Watusimotofeel free to do so
16:36:08thread_remind me, what is the google code url for this project?
16:36:38Tttt7858hmm
16:37:00Tttt7858I kind of want to figure out what system.
16:37:05Tttt7858would be best
16:37:51Tttt7858I personally think <<< ... *** could work sort of well
16:39:15Tttt7858^
16:39:32Tttt7858Chevrons for all ranks idk?
16:39:55Tttt7858sorry if i type too many things lol
16:40:02Watusimotohttps://code.google.com/p/bitfighter/issues/
16:40:09Watusimotoor do !bug
16:40:10Watusimoto!bug
16:40:10BFLogBotTo enter a bug, please make sure it is reproducible and then go to http://code.google.com/p/bitfighter/issues/list | Also, see current running bug list: http://bitfighter.org/wiki/index.php/Running_Bug_List
16:42:27Nothing_Much has joined
16:42:27Nothing_Much Quit (Changing host)
16:42:27Nothing_Much has joined
16:43:42Tttt7858Hm
16:43:45Tttt7858eh
16:56:00Watusimotoraptor: I'm going to bed. I'll try to get the master upgraded tomorrow
16:56:12raptorokey doke.. is the old one running now?
16:56:14Watusimotoyes
16:56:16raptorgreat
16:56:28raptorgood night
16:56:30WatusimotoI did not modify any of the scripts
16:56:34raptorok
16:56:41Watusimotoand the current master has a copy called master.current
16:56:50Watusimotoin case we (I) screw something up
16:56:57raptorok
16:56:58raptor:)
16:57:02Watusimotoin any event...
16:57:03Watusimotonight!
16:57:08raptornight!
16:57:23Watusimotooh one last thing
16:57:36Watusimotothread_ was asking how to submit lua api feature requests
16:57:39Watusimoto:-)
16:57:49raptorissues list!
16:57:49kaenI think he submitted it
16:58:06Watusimotoyes, I suspect so... just warning you there is another lua scripter on the loose
16:58:16Watusimotowell, in any event
16:58:24Watusimotokaen: thanks for your help
16:58:29Watusimotooh, I need to check the master
16:58:33kaenthanks for your patience :)
17:00:01Watusimotokaen: is the long query done?
17:00:06Watusimotothe aggregator?
17:00:37Watusimotobecause the stats we thought were delayed were never written
17:00:40Watusimotonor anything since
17:00:56WatusimotoSELECT *
17:00:56WatusimotoFROM `stats_player`
17:00:56WatusimotoORDER BY `stats_player_id` DESC
17:00:56WatusimotoLIMIT 0 , 30
17:01:25Watusimotoshows bobdaduck/208829 as the top record, and more should have been written since that was written
17:01:43Watusimotoa fair bit mroe
17:02:08thread_ Quit (Ping timeout: 250 seconds)
17:02:58Watusimotogetting a lot of these in the log:
17:02:59WatusimotoDatabase thread overloaded - database access too slow?
17:05:20Tttt7858 Quit (Quit: Page closed)
17:06:23kaenit's still running ...
17:06:28Watusimotook
17:06:37Watusimotothen that explains it
17:07:38WatusimotoI'll check tomorrow; though I'll probably be away most of the day
17:07:42Watusimotonight
17:07:46kaennight
17:07:47Watusimoto Quit (Remote host closed the connection)
17:11:34Nothing_Much Quit (Quit: l8r)
17:35:18bobdaduck Quit (Remote host closed the connection)
17:52:52raptoranother scripter on the loose!
18:16:29Nothing_Much has joined
18:16:30Nothing_Much Quit (Changing host)
18:16:30Nothing_Much has joined
23:57:52Nothing_Much Quit (Quit: l8r)

Index Search ←Prev date Next date→

These logs were automatically created by BFLogBot on irc.freenode.net.