Author Topic: v1.5.1 Bugs Thread  (Read 55424 times)

0 Members and 1 Guest are viewing this topic.

Offline Elouda

  • Gold Supporter
  • Lieutenant
  • *****
  • Posts: 194
  • Thanked: 21 times
  • Gold Supporter Gold Supporter : Support the forums with a Gold subscription
    2020 Supporter 2020 Supporter : Donate for 2020
    2021 Supporter 2021 Supporter : Donate for 2021
    2022 Supporter 2022 Supporter : Donate for 2022
Re: v1.5.1 Bugs Thread
« Reply #585 on: April 18, 2020, 09:56:20 AM »
Salvaged alien components show in the component list for 'Ship Design', and selecting and obsoleting them does nothing (they are removed if you disassemble/scrap all of them).

Two related QoL suggestions;
Maybe a tickbox like for 'Prototype' to show alien components, along with a visual indicator like the (P) on prototypes?
Also indentifying them in the Stockpiles page can be a pain if you havent named your own ones differently to default, maybe an (A) in the column with the number or after the name would be useful.
 

Offline Steve Walmsley (OP)

  • Aurora Designer
  • Star Marshal
  • S
  • Posts: 11729
  • Thanked: 20686 times
Re: v1.5.1 Bugs Thread
« Reply #586 on: April 18, 2020, 09:57:59 AM »
hey, i replied to another thread with my same problem but i guess it belongs here.  (sorry for inconvenience if someone has to edit that other post, or it get mixxed up with this)

ive got an error 155.
Its an Trans Newtonian start, but i started with 0 initial research / ship points.  Game is at ~40-50 years in progress.  Its an Random star System game.

I tried adding an research (i think it was Superdense Armor or Theta shield.  I got an error with null pointer (object reference not set to an instance of an object).  If i think correctly is was function 2160 but im not sure about this.  Thought it would be smart to save the game, and text if it reproduces, but now when i start the game and click on any button it get an error 155 null pointer (object reference not set to an instance of an object).  It appears like my race it gone.

link to db: https://drive. google. com/open?id=1anIbYvuM4CYDLxpWaSvolCeBqkET78Kl (sorry for the link, but my db is to big for forum)

if you need more information, feel free to ask, gonna keep an eye on here for a while (also im curious what just happened)

There are no races in the database at all. 155 is the handler for all the main map buttons, which would throw an error without any races.

2160 is the calculation of construction capacity so I doubt that would be the original error.

When the game is updated, it replaces the current database information with that from your game. If there are errors when you save, then the database could be corrupted. In that case, delete Aurora.db and rename AuroraDBSaveBackup.db to Aurora.db. That will restore your game to the last time you saved.

Aurora keeps that file as the backup for your previous save. There is also AuroraDBPreviousSaveBackup.db which is a backup of the previous backup so you can restore from two saves ago.
 
The following users thanked this post: bro918

Offline Steve Walmsley (OP)

  • Aurora Designer
  • Star Marshal
  • S
  • Posts: 11729
  • Thanked: 20686 times
Re: v1.5.1 Bugs Thread
« Reply #587 on: April 18, 2020, 10:03:29 AM »
One of the spaceliner of my shipping line is jumping back and forth at a jump point.

You could replicate the bug by loading the attached save file. Check the jump point between Sol and New England, and pass time with 3 hour increment. The spaceliner with the weird behavior is called "SL Sharp L8 002"

You could also check the history of the said spaceliner. Since its creation, it loaded 1250 passengers from Earth, and started jumping back and forth at the jump point.

Thanks for DB. Unfortunately, I made made a number of changes to the database now so I have reached the point where I can't load a 1.5 database :(

If this persists in v1.6 i will tackle it then.
 

Offline TMaekler

  • Vice Admiral
  • **********
  • Posts: 1112
  • Thanked: 298 times
Re: v1.5.1 Bugs Thread
« Reply #588 on: April 18, 2020, 10:04:07 AM »
Version 1.5.1, Conventional Start:
When adding 1x Fighter MSB, 1x Small MSB and 1x MSB, I should have 500 MSP in totoal, but I get 1.380 MSP...
Looks like that the amount of MSP is multiplied by the position the MSB is sitting, or the order in which the modules are added... I tried again and got 1.320 MSP...

https://drive.google.com/open?id=1GnoBK9zLhk_J4W1anIuglJV5DpW0h2BI
« Last Edit: April 18, 2020, 10:07:59 AM by TMaekler »
 

Offline cpw11

  • Leading Rate
  • *
  • c
  • Posts: 6
  • Thanked: 4 times
Re: v1.5.1 Bugs Thread
« Reply #589 on: April 18, 2020, 10:06:41 AM »
Quote from: Steve Walmsley link=topic=10756. msg125068#msg125068 date=1587203072
Quote from: Jovus link=topic=10756. msg124548#msg124548 date=1587134526
Quote from: Steve Walmsley link=topic=10756. msg124542#msg124542 date=1587133912
Quote from: cpw11 link=topic=10756. msg123938#msg123938 date=1587049998
Fatal crash to desktop on Mono/Linux. 

Hi Steve, so as you may or may not know, we've been busy modifying mono to run the game almost perfectly under mono on Linux (So far our biggest problem is trying to get metric perfect fonts, because Microsoft Sans is not a freely available font, and your layout is pixel precise, as well as a couple of corner cases around hardcoded "\" in file paths - both are mostly fixable easily enough by modifying mono). 

Sadly, there's one corner case that seems to have cropped up around Passive Sensors display.   It seems that somewhere in the code that draws the passive sensors on screen, you're sharing a System.  Drawing.  Pen object between multiple methods without cleaning it up afterwards - this results in a race condition on Linux/Mono where the garbage collector tries to double-free the Pen object.   (My hypothesis is that because the same pen passes between multiple methods, it gets queued into the global GC queue for subsequent deletion.   However, it is realized by the compiler that the Pen isn't actually needed after whatever toplevel method is using it, and it therefore disposes of it using the destructor.   The GC thread however, still sees the Pen in the GC queue and tries to clean it up again). 

If I could ask for you to Dispose() the pen object after you've used it to draw passive sensors (and whatever else it is shared with in that method) that should fix the problem for us weirdos on Linux. 

Thanks!

Fixing bugs that affect non-Windows is low priority at the moment.  However, I can take a quick look.  Does this affect ship passives, population passives or both?

This bug affects both planet and ship passives, as well as ship actives.  We haven't managed to test yet, but suspect it also affects missile sensors, and probably planet actives if those are even a thing now.

We really appreciate your willingness to take a look.  It's quite understandable that non-Windows users are a low priority, especially right now.

Yes, there is a pen that is held in the parent method and passed to many child methods, so I don't have to keep re specifying the parameters.  I assume you are asking me to Dispose in the parent method?

That is correct - just manually call Dispose at the end of the drawing sequence in the parent method and after all the child methods.  It should stop it becoming garbage for Linux and causing this crash.  Many thanks :D
 

Offline Kyle

  • Captain
  • **********
  • K
  • Posts: 472
  • Thanked: 973 times
  • Quasar4x dev
Re: v1.5.1 Bugs Thread
« Reply #590 on: April 18, 2020, 10:08:42 AM »
Please for the love of god, format the datetime strings, it's very simple to do, and will save people having to set their system datetime settings, and ensure some consistency.
something along the lines of:
string format = "hh:mm:ss dd MMMM yyyy ";
string dateString = dateTime.ToString(format));
would result in eg: 12:05:42 18 April 2020

You'd have to ensure that September fits as it's the month with the most letters. if you use numerals for months, it'll be shorter but people will likely get confused on the order of days and months.

Edit: Actually, a bit more playing around, I've found you can use three MMM and just get the abreviated month:
string format = "hh:mm:ss dd MMM yyyy ";
results in:
12:05:42 18 Apr 2020

I will get around to looking at this. At the moment I am focused on issues that users can't get around.

I like being able to control the format of the date.  I propose it gets left alone and further discussed in the suggestions forum or something.
 

Offline cpw11

  • Leading Rate
  • *
  • c
  • Posts: 6
  • Thanked: 4 times
Re: v1.5.1 Bugs Thread
« Reply #591 on: April 18, 2020, 10:10:47 AM »
Quote from: Steve Walmsley link=topic=10756.  msg125144#msg125144 date=1587214021
Quote from: Bobbysepp link=topic=10756.  msg124805#msg124805 date=1587161446
Not exactly sure if this is related to the 914 errors I had earlier, but I have a reproducible Function 915: Out of Memory when zooming out past 103b km Accompanied by the occasional Function 1618: Collection was modified; enumeration may not execute.    DB attached.   

The error seems to abate at around 10LY out and only seems to happen in complex systems, as I was also able to reproduce it in Epsilon Indi.    In EI I get the same Function 914: Out of Memory Error I made in a previous post. 

Thanks.   I have reproduced it, although not worked out how to fix it yet. 

EDIT: Fixed.   Nothing to do with memory.   Apparently GDI throws that error for non-memory-related reasons.   In this case trying to draw a circle with a radius close to zero.   If you turn off active sensors before zooming out, the problem should go away.   I suspect this might be related to the Linux error as well. 

I've gone through and fixed other drawing code that might have similar issues. 

Going to chime in here and say that Linux gets these OOM errors from GDI because there is a separate library on linux emulating the GDI code.  Also, there were a lot of eyebrows raised when we collectively realized that the GDI library uses OOM to communicate "I failed to handle this image".  WOW.

Sadly, the linux libgdi emulation library lacks the "\"->"/" translation layer that the rest of mono has.   Therefore it fails to read file paths handed to it from mono which contain "\" characters.   This was worked around by editing mono to force translate all "\" to "/" in the mono System.  Drawing library.   If you wish to be more linux compatible, rather than concatenating strings of the form "Flags\\"+flagpath or somesuch, use Path.  Combine("Flags",flagpath). 

Hope this helps and thanks again!
« Last Edit: April 18, 2020, 10:12:43 AM by cpw11 »
 
The following users thanked this post: SpikeTheHobbitMage

Offline abdull

  • Leading Rate
  • *
  • a
  • Posts: 6
Re: v1.5.1 Bugs Thread
« Reply #592 on: April 18, 2020, 10:59:35 AM »
Quote from: Steve Walmsley link=topic=10756. msg125166#msg125166 date=1587215471
Quote from: SpaceMarine link=topic=10756. msg124960#msg124960 date=1587179132
Hey Steve, this is a bug report from a user on the discord, he does not have a account just yet so I am posting it for him, here it is. 

the bug: not being able to assign fighters to a space station which does not have anything in it, the assignment to ship menu does not show up.  not a conventional start, and not a random stars game.  it happens every time i try to add my fighter to the space station campaign is 20 years old

What do you mean by 'a space station which does not have anything in it'?

it was me who had this bug what i meant was that the space station had a 10000tons hanger space and nothing already inside of it when i tried to assign the fighters to it in the naval organisation screen, but when i clicked land on specified mother ship and assign i only got a screen saying please select the target of the order but no apparent way of doing so. 
i attached the database now that i have an account
 

Offline Steve Walmsley (OP)

  • Aurora Designer
  • Star Marshal
  • S
  • Posts: 11729
  • Thanked: 20686 times
Re: v1.5.1 Bugs Thread
« Reply #593 on: April 18, 2020, 11:01:39 AM »
That is correct - just manually call Dispose at the end of the drawing sequence in the parent method and after all the child methods.  It should stop it becoming garbage for Linux and causing this crash.  Many thanks :D

I've added Dispose() in the parent methods for pens that are passed into child methods. Let me know if that works.
 
The following users thanked this post: SpikeTheHobbitMage, db48x, Jovus, cpw11, Merlin_of_chaos, Kraetzin

Offline cpw11

  • Leading Rate
  • *
  • c
  • Posts: 6
  • Thanked: 4 times
Re: v1.5.1 Bugs Thread
« Reply #594 on: April 18, 2020, 11:05:13 AM »
Quote from: Steve Walmsley link=topic=10756. msg125245#msg125245 date=1587225699
Quote from: cpw11 link=topic=10756. msg125230#msg125230 date=1587222401
That is correct - just manually call Dispose at the end of the drawing sequence in the parent method and after all the child methods.   It should stop it becoming garbage for Linux and causing this crash.   Many thanks :D

I've added Dispose() in the parent methods for pens that are passed into child methods.  Let me know if that works.

Thanks a lot.  We'll test and let you know once you release!
 

Offline db48x

  • Commodore
  • **********
  • d
  • Posts: 649
  • Thanked: 202 times
Re: v1.5.1 Bugs Thread
« Reply #595 on: April 18, 2020, 11:23:28 AM »
Er…. should a jumpship w/ commercial engines and a military jump drive be rated as a commercial ship?  Just noted this as I was going thru creating a survey command ship.

Military jump drive is a commercial system. Its confusing because there are two separate commercial/military commercial distinctions; one for engines and one for maintenance. In this case the military (engines) jump drive is a commercial (maintenance) component.

I probably need alternative description for one pair.

A quick fix could be calling "military jump drives" just "universal jump drives", which hints at the fact that they work for both military ships and commercial ships.

There are no "universal" jump drives now :D

Ships with military engines can only go through wormholes established by military jump engines, and ships with commercial engines can only go through wormholes established by commercial jump engines.

Steve, another fix might be to change the mechanic so that the jump engines have an engine power rating. Ships with more engine power than that disrupt the wormhole, preventing travel. This keeps the size and cost differences similar to what you currently have, while not overloading the terminology. Gives us more choices to make as well.
 

Offline Energyz

  • Sub-Lieutenant
  • ******
  • E
  • Posts: 106
  • Thanked: 27 times
Re: v1.5.1 Bugs Thread
« Reply #596 on: April 18, 2020, 11:28:06 AM »
Shipyards are listed as potential targets, but missiles aimed at them will self destruct because "target lost"

Tractored Ship are not counted in jump engine max ships. Even if it's WAI, sometimes the tractored ship will stay behind until you detach the tractoring ship from its fleet. You can detach tractored ship without it's tractoring ship, but detaching tractoring ship will put them with tractored ship

Auto assign FC can cause size 1 missile to be assigned to size 6 launcher, even though size 6 missiles were available
 

Offline Energyz

  • Sub-Lieutenant
  • ******
  • E
  • Posts: 106
  • Thanked: 27 times
Re: v1.5.1 Bugs Thread
« Reply #597 on: April 18, 2020, 11:29:55 AM »
Er…. should a jumpship w/ commercial engines and a military jump drive be rated as a commercial ship?  Just noted this as I was going thru creating a survey command ship.

Military jump drive is a commercial system. Its confusing because there are two separate commercial/military commercial distinctions; one for engines and one for maintenance. In this case the military (engines) jump drive is a commercial (maintenance) component.

I probably need alternative description for one pair.

A quick fix could be calling "military jump drives" just "universal jump drives", which hints at the fact that they work for both military ships and commercial ships.

There are no "universal" jump drives now :D

Ships with military engines can only go through wormholes established by military jump engines, and ships with commercial engines can only go through wormholes established by commercial jump engines.

Steve, another fix might be to change the mechanic so that the jump engines have an engine power rating. Ships with more engine power than that disrupt the wormhole, preventing travel. This keeps the size and cost differences similar to what you currently have, while not overloading the terminology. Gives us more choices to make as well.

Are you sure about that? My commercial tanker only has a military jump engine, and it is able to jump and bring with him military ships without jump drives
 

Offline LuciusSulla

  • Petty Officer
  • **
  • L
  • Posts: 19
  • Thanked: 3 times
Re: v1.5.1 Bugs Thread
« Reply #598 on: April 18, 2020, 11:41:17 AM »
Not sure if this is intended. But multiple spaceports still require additional workers.
 

Offline Pedroig

  • Lt. Commander
  • ********
  • P
  • Posts: 243
  • Thanked: 67 times
Re: v1.5.1 Bugs Thread
« Reply #599 on: April 18, 2020, 11:44:41 AM »
Er…. should a jumpship w/ commercial engines and a military jump drive be rated as a commercial ship?  Just noted this as I was going thru creating a survey command ship.

Military jump drive is a commercial system. Its confusing because there are two separate commercial/military commercial distinctions; one for engines and one for maintenance. In this case the military (engines) jump drive is a commercial (maintenance) component.

I probably need alternative description for one pair.

A quick fix could be calling "military jump drives" just "universal jump drives", which hints at the fact that they work for both military ships and commercial ships.

There are no "universal" jump drives now :D

Ships with military engines can only go through wormholes established by military jump engines, and ships with commercial engines can only go through wormholes established by commercial jump engines.

Steve, another fix might be to change the mechanic so that the jump engines have an engine power rating. Ships with more engine power than that disrupt the wormhole, preventing travel. This keeps the size and cost differences similar to what you currently have, while not overloading the terminology. Gives us more choices to make as well.

Are you sure about that? My commercial tanker only has a military jump engine, and it is able to jump and bring with him military ships without jump drives

Sounds like working as intended.  Jump Drive will always work on the ship it is mounted on (provided it doesn't exceed Jump Capacity), the Military/Commercial designation is for what other ships it can effect.
si vis pacem, para bellum