Known issues in MPS release 1.108.0

This list may include some issues incorrectly, because "p4 fixes -i" does not report a fix for a version branch if the files changed by the fix were deleted on the masters before the version branch was taken.

Job Priority Title
job001676 nice AMC does not implement weakness in emergency fixing.
job001688 nice AMC repeatedly allocates and initialises identical SegPrefs
job001681 nice AMCHeaderFix is an unnecessary copy.
job001682 nice AMCWalk does not honour its contract
job000548 optional AMS grain colour doesn't agree with design doc
job003504 optional ANSI plinth does not check its arguments
job001687 optional AWL does not recycle memory to the arena.
job003357 nice AWL is awkward to use
job003523 optional Accessing to weak tables on 64-bit causes them to be scanned.
job003359 essential Ambiguous interior pointers do not keep objects alive
job003495 optional Assertion failure if you try to create a small arena
job003370 essential Assertion failure in AMS: "grey == TraceSetEMPTY || SegRankSet(seg) != RankSetEMPTY"
job003490 nice Assertion failure in MRGDescribe
job003412 critical Assertion failure in TraceScanAreaMasked on Linux
job003496 essential Assertion failure in mps_arena_roots_walk
job003356 critical Assertion in SegSetGrey when using AMCZ
job000549 optional Blackening an AMS segment can break
job003301 critical Bogus assertion iswrite == 0 || iswrite == 1 on Windows
job000550 optional BufferEmpty on AMS in mid-collection can break
job003469 essential CET can't safely make use of the top 2GiB of memory on 32-bit Windows
job003515 optional Can't collect diverse MPS messages in order
job003512 nice Can't configure MVT alignment
job003430 essential Can't run test suite on OS X
job003367 essential Can't run tests via "make test"
job001621 essential Can't use threads on OS X.
job003519 essential Clock values in text telemetry logs on Windows have top 32 bits zero
job003353 nice Collection start reason hard to analyze
job003384 essential Collector goes mad when low on address space
job001360 nice Configura cannot efficiently use SEH.
job000814 nice Configura cannot manage Lightworks objects with the MPS
job001357 nice Configura cannot use Win32 fibers
job001639 optional Configura would like "control over finalization promptness"
job001659 optional Culprit analysis is too hard.
job003351 nice Debugging pool classes are hard to use
job001669 essential Developers can't debug MPS on OS X.
job003343 nice Documentation could say more about meaning of result codes
job003337 optional Example Scheme interpreter crashes in append
job003338 optional Example Scheme interpreter does not finalize ports
job003322 nice External interface contains useless "fixed" object format
job003500 nice Format interface is hard to understand
job001151 optional Format methods can't look at other data
job003455 optional Frequent ramps can mess up the ramping algorithm and cause performance problems
job003431 optional Hard to tell which test case failed
job003434 essential Incorrect glossary link from "committed" to "mapping"
job003485 nice Information about cause of errors is lost
job003352 optional Instruction emulation not supported on OS X or x86-64
job000677 nice Insufficient stuff has been converted from MMinfo to Ravenbrook Project repository
job003508 nice Little in manual about in-band headers
job003368 optional MFS has no public interface
job003492 optional MFS refuses to handle objects smaller than platform alignment
job001784 critical MPS AMC pool + auto_header format: nailboards leak ControlPool memory
job001811 optional MPS AMC small nailed objects risk big retention by placement after big objects
job001706 essential MPS PoolAMC could (if no shield cache) assert in LockClaim
job001934 essential MPS VC9 build failure C4996: getenv considered insecure
job001989 critical MPS _gc_start messages may cause assert or infinite loop
job001570 optional MPS _gc_start messages may change while client reads them, or be silently skipped
job001809 essential MPS ambiguous internal pointer makes AMC pool retain memory as pads
job001549 essential MPS assert !AMS_IS_INVALID_COLOUR(seg, i) poolams.c AMSFix
job001789 nice MPS auto_header format is not tested by main test files
job001395 essential MPS build failure on Linux with glibc 2.3: wrong defines before system includes
job001945 essential MPS buildsys CONFIG_PF_* does not select a platform, is not checked by mpstd.h
job001156 optional MPS cannot queue a message when a weak thing goes away
job002209 essential MPS client cannot determine pool or format, given object address
job001968 essential MPS clients get no synchronous alert of collection begin/end
job002205 critical MPS collection runs too slow if client allocates big objects
job001154 essential MPS documentation gives no guidance for when client wants foreign code to use mps-allocated memory
job001084 essential MPS does not build with "sh configure;make;make install"
job001149 optional MPS does not provide sufficient information about addresses
job003473 essential MPS doesn't build on FreeBSD 9.1
job001105 essential MPS doesn't compile on FreeBSD current [fill in version here]
job003411 nice MPS doesn't make use of __builtin_readcyclecounter on OS X
job001150 optional MPS doesn't provide enough feedback information about what it is doing or what it has done
job001255 nice MPS expgen.sh is broken, at least on Mac OS X 10.4.2
job001715 nice MPS fails to lower barrier when hit: multiple hits cause slowdown (CONJECTURE)
job001634 critical MPS fails under Rosetta.
job001969 essential MPS gc-start and -end messages give no idea of timing
job003484 nice MPS has predictable address space layout
job003505 optional MPS incurs large overhead on barrier hits
job003477 optional MPS is hard to build and debug on Windows
job001092 essential MPS is not integrated with public cool projects.
job003439 essential MPS is too hard to use
job001383 essential MPS lacks example GC code - a "hello-world with GC" for beginners
job001887 optional MPS mps_arena_committed() is wrong when using mps_arena_class_cl (client arena)
job001966 optional MPS mpsi_check() does not check message type constants
job001543 optional MPS mpsicv (test) on OS X does not use reg&stack scanner.
job001544 optional MPS mpsicv coverage test source does not have ifndef CONFIG_PF_XCI3GC
job001571 nice MPS multiple traces would not work
job001550 optional MPS poolams.c AMSFix omits checks: clientRef is within seg; bit index is valid
job002206 nice MPS some internal tests leave arena parked after mps_arena_collect()
job003371 essential MPS spends too much time making system calls
job002175 optional MPS unaligned references are not detected by AMC pools
job001384 nice MPS unclear constraints on avgSize argument to PoolMV mps_pool_create
job002248 essential MPS virtual memory arena class never returns virtual memory
job001714 optional MPS xcppgc (Mac OS X PowerPC) is built with outdated compiler flags
job001737 essential MPS: VMArena growth is brittle, does not fallback to smaller growth increment
job003340 optional MPS_TELEMETRY_CONTROL=65535 is ugly and not future-proof
job003509 nice MVT and MVFF use segments unnecessarily
job003319 nice MVT creation takes "integer percentage" argument
job003324 nice Manual contains little about performance of interface
job001145 optional Many (mmqa) tests fail on OS X
job000537 optional Many design documents missing
job003497 essential Messages from assertions sound like bugs in the MPS
job003387 optional Multiple arenas can corrupt telemetry stream
job000543 nice No MPS programmer's guide
job000542 essential No MPS user manual
job003476 optional No automated testrun target on Windows
job003443 optional No coverage testing
job003374 nice No documentation about low memory situations
job001666 optional No guarantee that all weak references to an object die together.
job003318 nice No interface to get collection number from a gc start message
job003493 nice No recovery mode after assertion failure
job003414 essential No test case for multi-threaded stack scanning
job001635 essential On Unix, signal handler is not installed correctly.
job003385 essential Performance is poor in large address space
job003487 nice Pool debug options are awkward to pass
job003522 optional PoolFix is on the critical path but contains checks
job003328 nice Possible improvement to reserve/commit protocol
job003321 optional Private symbols in mps.h are missing underscores
job000538 optional Project documents are poorly formatted
job003344 nice Purpose of allocation frames/SNC pool class are unclear
job003350 nice Purpose of manual pool classes is unclear
job003329 optional Purpose of mps_alert_collection_set is unclear
job003326 nice Purpose of mps_arena_class_vmnz is unclear
job003327 nice Purpose of reservoirs is unclear
job003325 nice Purpose of the "class" method of an object format is unclear
job003502 nice Race condition in EventInit()
job003454 optional Ramp use can break generation chain with bad performance consequences
job003494 essential Re-entrancy failure in LDReset
job000547 essential Reference manual has lots of missing spaces
job000541 essential Reference manual needs subject sections
job000540 essential Reference manual symbol coverage needs reorganizing
job003435 essential Rehashing large hash tables breaks nursery collection strategy
job003317 optional Requirements for fixing tagged references are unclear
job000539 essential Some external symbols are missing from the reference manual
job003479 optional Some forward declarations of *ClassGet() functions are wrong
job000742 nice Some niggles annoy DRJ
job003386 optional Telemetry control interface is poorly designed
job003503 essential Telemetry system calls mps_io_flush() without mps_io_create()
job003481 nice Test case seed generation is not random enough
job003489 optional Test fail logs are lost forever on build servers
job003472 optional Test output always goes to mps-XXXXXX.log on some platforms
job003470 optional Test program qs.c fails to compile on Ubuntu 10.04
job003482 nice Test suite doesn't test error paths
job001152 optional The MPS can't be used to simulate a smaller machine
job003499 critical The MPS issues list looks scary
job001153 critical The MPS lacks error recovery mechanisms
job001636 essential Too much Unix code is dangerously copied and not shared.
job003413 nice Typos in documentation, comments
job003341 optional Unclear how to destroy a pool containing objects registered for finalization
job003348 nice Unclear what happens if a thread dies while registered
job003349 optional Unclear what mps_SEH functions are for
job001785 essential Unclear whether base or client pointer passed to pad method of format auto-header
job003330 optional Unclear which threads need to call mps_tramp
job003316 optional User guide doesn't explain how to choose object format alignment
job001707 optional VM Arena never shrinks a generation zone set preferences.
job001709 nice VM Arena uses up zones too quickly.
job001708 nice VM Arena's segment placement policy could be improved.
job003498 essential Varargs interface to SNC broken
job003323 optional Varargs interfaces are hard to use
job001665 essential Weakness is not well documented.
job003440 essential amcss test failure
job003432 essential amcsshe test failure
job003474 essential amcssth test failure on lii6gc and fri3gc
job003438 nice arena->serial is always 0
job003436 essential awlut test failure
job003480 nice awluthe test failure on OS X
job003506 optional awlutth test case fails on lii6gc
job003331 optional eventcnv appears to hang if you specify a small bucket size
job003334 optional eventcnv output has bogus timestamp on totals row in CSV format
job003332 optional eventcnv outputs an empty bucket when you specify a bucket size
job003333 optional eventcnv produces bogus output if you pass -b but not -e
job003335 optional eventcnv's bucket aggregation is broken
job001155 essential full collects cause gigantic ramps
job003315 nice mps.h defines the macro MPS_T_WORD
job003302 optional mps_arena_create fails with deep consistency checks
job000652 essential mps_arena_destroy may crash if some objects aren't destroyed
job003320 optional mps_arena_step unclamps the arena
job003342 nice mps_arena_unsafe functions are bogus
job003448 nice mps_arena_vm_growth is not documented
job003510 optional mps_free doesn't check all addresses in range
job003471 optional mps_root_create_table is hard to use without punning
job003507 optional mpseventsql -i and -o options cause crash
job003433 essential mpsicv test failure
job003486 essential mv2test failure
job003483 nice mv2test.c contains a redundant random number generator
job003388 optional telemetry system API can corrupt telemetry stream
job001161 nice there is no human-helpful map of MPS files
job001158 essential variety design does not meet requirements of open-source MPS