View Issue Details

IDProjectCategoryView StatusLast Update
0000717LDMud 3.6Generalpublic2022-10-06 20:05
Reporterzesstra Assigned Tozesstra  
PrioritylowSeverityminorReproducibilityN/A
Status closedResolutionwon't fix 
Summary0000717: Change free'ing of unreferenced strings during GC
DescriptionIf the reference counter of strings is 0, the strings is regarded as 'not freeable' and the reference counting is disabled altogether. The reason is, that the ref counter may overflow from MAX to 0 (it is unsigned).
The GC breaks that scheme by marking unreferenced strings with 0 ref counts and it later deletes strings with a ref count of 0.

Although ref counter overflows are unlikely, the GC should be changed.
If there are no other places in the GC which find unref'ed strings, mark_unreferenced_string() and mstring_gc_table() may be combined into one step (directly free unreferenced strings instead of marking them unreferenced and free'ing them later).
Tagsgarbage collector, memory corruption, reference counter

Relationships

related to 0000752 closedzesstra Entities with reference counters should never be freed once the counter overflowed 

Activities

zesstra

2021-04-16 21:09

administrator   ~0002606

Add a comment that we are aware of the potential issue, but think, it will never happen in reality without another error. Therefore we add documentation and close this issue.

zesstra

2022-10-06 20:05

administrator   ~0002695

Documentation updated.

Issue History

Date Modified Username Field Change
2010-01-24 15:39 zesstra New Issue
2010-11-23 00:09 zesstra Relationship added related to 0000752
2011-02-13 21:59 zesstra Tag Attached: memory corruption
2011-02-13 21:59 zesstra Tag Attached: reference counter
2011-02-13 21:59 zesstra Tag Attached: garbage collector
2021-04-16 21:09 zesstra Assigned To => zesstra
2021-04-16 21:09 zesstra Status new => assigned
2021-04-16 21:09 zesstra Note Added: 0002606
2021-04-17 08:33 zesstra Project LDMud 3.5 => LDMud 3.6
2021-04-17 08:33 zesstra Category Runtime => General
2022-10-06 20:05 zesstra Status assigned => closed
2022-10-06 20:05 zesstra Resolution open => won't fix
2022-10-06 20:05 zesstra Note Added: 0002695