View Issue Details

IDProjectCategoryView StatusLast Update
0002796Spring engineGeneralpublic2012-06-16 14:09
ReporterGoogle_Frog Assigned Toabma  
PrioritynormalSeveritymajorReproducibilityalways
Status resolvedResolutionfixed 
Product Version85.0 
Target Version86.0Fixed in Version89.0 
Summary0002796: infolog.txt is buffered and not written instantly
DescriptionThis is really annoying for game development and there is no alternate solution in place (opening and writing your own file with lua is not a good solution). It can be limited instead of removed, you could add a springsetting to toggle no buffering and the old behaviour.
TagsNo tags attached.
Attached Files
infolog_midgame.txt (Attachment missing)
infolog_midgame2.txt (Attachment missing)
infolog_end.txt (Attachment missing)
Checked infolog.txt for Errors

Relationships

related to 0002903 resolvedabma crash while playing (brickcraft) 
has duplicate 0002718 closed infolog.txt is buffered and not written instantly 

Activities

Kloot

2011-11-29 13:10

developer   ~0007765

stop making duplicates

Google_Frog

2011-11-29 14:05

reporter   ~0007768

Reporters cannot reopen tickets they did not create.

Kloot

2011-11-29 14:18

developer   ~0007770

Nor should they.

You can take it up personally with the devs who decided on this change, cloning a closed report won't help.

Google_Frog

2011-11-29 14:53

reporter   ~0007772

It's not just making duplicates if this is the only way for me to cause an open ticket on the subject.

"You can take it up personally with the devs who decided on this change, cloning a closed report won't help."

Then what is the ticket system for? Every time someone finds a bug or bad behaviour you're saying they should just track down the exact commit that caused it and take it up personally with whichever dev committed the change. Unless there is a significant difference between this ticket and others.

This is a ticket system, I presume many devs read it. Don't close a ticket because it has no direct relevance to you.

Kloot

2011-11-29 15:13

developer   ~0007773

"Unless there is a significant difference between this ticket and others."

Correct.

The difference is that the pros and cons of infolog buffering were discussed in several meetings before it was decided to be changed. It is a well-considered feature for which all the usual arguments including yours have been reviewed and weighed, not a bug or regression we did not previously know about and decided not to fix.

"This is a ticket system, I presume many devs read it. Don't close a ticket because it has no direct relevance to you."

If I close a ticket, you can be pretty sure another dev would have done the same, especially those involved with this change. Hence my suggestion to take things up personally.

Google_Frog

2011-11-30 07:44

reporter   ~0007776

There is no single clear proponent of the buffering behaviour to take it up personally with. If there is one and I just have not recognised it I am using the ticket system to contact them.

user744

2011-11-30 15:15

  ~0007777

Couldn't it be an option, toggleable (for example) by a console command?
Or something like /flushinfologbuffernow
Or a variable in springsettinsg like instantInfologWriting = true/false

Sorry if that was asked before, but I did not find a post on that.
Here infolog flushing is discussed but the use of infolog for game/lua makers did not come up:
http://springrts.com/phpbb/viewtopic.php?f=73&t=26893&p=501915&hilit=infolog#p501915

FLOZi

2011-11-30 23:16

reporter   ~0007781

I'd also like to see an option, if at all possible.

Licho

2011-12-01 23:21

reporter   ~0007788

Google you can hack it to make it work, redirect stdout to file
spring.exe > out.txt

Then its instant!

hoijui

2011-12-09 00:02

reporter   ~0007846

with this commit:
https://github.com/spring/spring/commit/2322f6a39ba088d4fe2c104be473b76859c33132
flushing should now work pretty much as before the switch to the new logging system, for release builds.
(debug builds did flush more in the past; after each log record)

i do not know if the current locations where flushing is done is correct. i guess zerver and jk will correct it if they see fit.

KingRaptor

2012-01-02 07:43

reporter   ~0008051

Is it at all possible to make Spring write hang information to infolog more reliably?
Currently if you get a hang and kill the process, the hang information is lost. This makes it very difficult to debug, particularly if the person experiencing problems is some random end user.

Licho

2012-01-02 12:01

reporter   ~0008052

Btw if you redirect output and process it, it seems to slow down spring, it outputs it on primary thread?
(Processing output with something slow slows spring!)

user744

2012-01-06 19:07

  ~0008090

>with this commit:
>https://github.com/spring/spring/commit/2322f6a39ba088d4fe2c104be473b76859c33132
>flushing should now work pretty much as before the switch to the new logging >system, for release builds.
is it possible to get an .exe with that change?
When my game crashes, the infolog is mostly incomplete and I have no idea what to do.

> spring.exe > out.txt
This does not (always) work btw, eg here the out.txt was cut off as well:
http://springrts.com/mantis/view.php?id=2887

abma

2012-01-07 12:17

administrator   ~0008093

seems to not work well with stacktraces, see 0002903

zerver

2012-01-10 00:23

reporter   ~0008119

https://github.com/spring/spring/commit/a77a20affdbeb912203b8047f0f871e6bf1e0637

Google_Frog

2012-01-12 11:15

reporter   ~0008135

Not working in 85.0.1-44-gceed8a0.

abma

2012-01-12 15:17

administrator   ~0008138

Last edited: 2012-01-12 16:40

the buffering is fine, only bad/worse is, that stacktraces are cut off. do you have an example for a stacktrace cut-off?

Google_Frog

2012-01-15 01:27

reporter   ~0008152

No I have an infolog that cuts off at

[f=0000000] LuaUI v0.3
[f=0000000] Finalizing

abma

2012-01-15 02:30

administrator   ~0008153

Last edited: 2012-01-15 02:38

are you on windows 7?

maybe we are affected by this "feature": http://social.msdn.microsoft.com/forums/en-us/vcgeneral/thread/0BE93860-9D3F-4133-B981-0B507BB61D73

"Try changing the open flags from "wb" to "wbc" and see if that has some
effect - it does for me."

see
http://msdn.microsoft.com/de-de/library/yeby3zcb%28v=vs.80%29.aspx
"c

    Enable the commit flag for the associated filename so that the contents of the file buffer are written directly to disk if either fflush or _flushall is called.
"

abma

2012-01-15 09:23

administrator   ~0008154

@Google_Frog:

can you please attach that whole infolog.txt please?

Google_Frog

2012-01-15 13:54

reporter   ~0008155

"are you on windows 7?"

Yes

Google_Frog

2012-01-17 12:22

reporter   ~0008175

infolog_midgame is the contents around frame 1803.

infolog_midgame is the contents around frame 4280.

infolog_end is the contents upon spring exit.

user744

2012-06-14 20:26

  ~0008780

since this is on "feedback":
spring 88.0 and this is not solved.
infolog is not only incomplete on crash but also on /luarules reload
(same as in 83 or 85 or when the change was made)

1) directing stdout to file like
spring.exe > out.txt
does not work (tried on win xp and vista, output is cut off still)

2) write to a file with widget:
fails on /luaui reload (since the log widget also gets reloaded)
and for the stuff that happens before widget (eg *post.lua)

>Couldn't it be an option, toggleable (for example) by a console command?
>Or something like /flushinfologbuffernow
>Or a variable in springsettinsg like instantInfologWriting = true/false
please?
It would keep the "130 mb of infolog do not slow everything down" thing but also allow modders to debug their stuff.
(When you want to see infolog, type /flushinfologbuffernow)

Google_Frog

2012-06-14 20:29

reporter   ~0008781

"/flushinfologbuffernow"
Wouldn't work. Sometimes crashes cut off infolog so there is no time to manually flush.

"instantInfologWriting "
This should default to true so we can get good bug reports of the above case.

abma

2012-06-16 14:09

administrator   ~0008787

Last edited: 2012-06-16 14:10

i've added a LogFlush config setting (disabled as default):

https://github.com/spring/spring/commit/32a62424bc8a98b1ecaf59193352e5e088b1cad8

so everybody is hopefully happy now :)

Issue History

Date Modified Username Field Change
2011-11-29 13:01 Google_Frog New Issue
2011-11-29 13:10 Kloot Relationship added has duplicate 0002718
2011-11-29 13:10 Kloot Note Added: 0007765
2011-11-29 13:10 Kloot Status new => closed
2011-11-29 13:10 Kloot Resolution open => won't fix
2011-11-29 14:05 Google_Frog Note Added: 0007768
2011-11-29 14:05 Google_Frog Status closed => feedback
2011-11-29 14:05 Google_Frog Resolution won't fix => reopened
2011-11-29 14:18 Kloot Note Added: 0007770
2011-11-29 14:18 Kloot Status feedback => closed
2011-11-29 14:18 Kloot Resolution reopened => duplicate
2011-11-29 14:53 Google_Frog Note Added: 0007772
2011-11-29 14:53 Google_Frog Status closed => feedback
2011-11-29 14:53 Google_Frog Resolution duplicate => reopened
2011-11-29 15:13 Kloot Note Added: 0007773
2011-11-29 15:13 Kloot Status feedback => closed
2011-11-29 15:13 Kloot Resolution reopened => duplicate
2011-11-30 07:44 Google_Frog Note Added: 0007776
2011-11-30 07:44 Google_Frog Status closed => feedback
2011-11-30 07:44 Google_Frog Resolution duplicate => reopened
2011-11-30 15:15 user744 Note Added: 0007777
2011-11-30 23:16 FLOZi Note Added: 0007781
2011-12-01 23:21 Licho Note Added: 0007788
2011-12-03 21:27 hoijui Target Version => 85.0
2011-12-07 21:29 hoijui Status feedback => assigned
2011-12-07 21:29 hoijui Assigned To => hoijui
2011-12-09 00:02 hoijui Note Added: 0007846
2012-01-02 07:43 KingRaptor Note Added: 0008051
2012-01-02 12:01 Licho Note Added: 0008052
2012-01-06 19:07 user744 Note Added: 0008090
2012-01-07 12:17 abma Note Added: 0008093
2012-01-07 12:24 abma Product Version 84.0 => 85.0
2012-01-08 16:42 abma Relationship added related to 0002903
2012-01-09 23:07 abma Target Version 85.0 => 86.0
2012-01-10 00:23 zerver Note Added: 0008119
2012-01-10 00:23 zerver Status assigned => resolved
2012-01-10 00:23 zerver Fixed in Version => 85.0.1
2012-01-10 00:23 zerver Resolution reopened => fixed
2012-01-12 11:15 Google_Frog Note Added: 0008135
2012-01-12 11:15 Google_Frog Status resolved => feedback
2012-01-12 11:15 Google_Frog Resolution fixed => reopened
2012-01-12 15:17 abma Note Added: 0008138
2012-01-12 16:39 abma Note Edited: 0008138
2012-01-12 16:40 abma Note Edited: 0008138
2012-01-12 16:40 abma Note Edited: 0008138
2012-01-15 01:27 Google_Frog Note Added: 0008152
2012-01-15 02:30 abma Note Added: 0008153
2012-01-15 02:36 abma Note Edited: 0008153
2012-01-15 02:38 abma Note Edited: 0008153
2012-01-15 09:23 abma Note Added: 0008154
2012-01-15 13:54 Google_Frog Note Added: 0008155
2012-01-17 12:20 Google_Frog File Added: infolog_midgame.txt
2012-01-17 12:20 Google_Frog File Added: infolog_midgame2.txt
2012-01-17 12:20 Google_Frog File Added: infolog_end.txt
2012-01-17 12:22 Google_Frog Note Added: 0008175
2012-02-06 14:05 hoijui Assigned To hoijui =>
2012-06-14 20:26 user744 Note Added: 0008780
2012-06-14 20:29 Google_Frog Note Added: 0008781
2012-06-16 14:09 abma Note Added: 0008787
2012-06-16 14:09 abma Status feedback => resolved
2012-06-16 14:09 abma Fixed in Version 85.0.1 => 89.0
2012-06-16 14:09 abma Resolution reopened => fixed
2012-06-16 14:09 abma Assigned To => abma
2012-06-16 14:10 abma Note Edited: 0008787
2012-06-16 14:10 abma Note Edited: 0008787