Skip to content

Monthly issue metrics report #768

Description

@julesghub

Issue Metrics

Metric Average Median 90th percentile
Time to first response 4 days, 6:48:34 4 days, 4:16:18 8 days, 3:16:44
Time to first review None None None
Time to close 5 days, 15:29:29 2 days, 16:21:29 13 days, 11:21:38
Time to answer None None None
Metric Count
Number of items that remain open 50
Number of items closed 36
Total number of items created 86
Title URL Assignee Author Time to first response Time to first review Time to close Time to answer
test_0053_hang_watchdog crashes its xdist worker intermittently (1 in ~15 CI runs) underworldcode/underworld3#661 None lmoresi None None 7 days, 11:53:44 None
SUPG and Levelset underworldcode/underworld3#657 None NengLu 6 days, 18:33:38 None None None
Stokes_Constrained: consolidated state of the open work (supersedes #244, #248, #254, #495) underworldcode/underworld3#651 None lmoresi None None None None
geoid harmonic projection re-derives the surface mesh with ConvexHull instead of integrating over the boundary facets we already have underworldcode/underworld3#647 None lmoresi None None None None
Monthly issue metrics report #767 julesghub julesghub None None None None
Document long HDF5 path failures in parallel PETSc output underworldcode/underworld3#645 None gthyagi None None None None
FMG geometric-MG coarse solve uses PCREDUNDANT: coarse LU replicated on every rank — OOM at scale when the base mesh is fine underworldcode/underworld3#644 None bknight1 1 day, 13:58:59 None 1 day, 13:58:59 None
FMG + redundant coarse solver: replicated memory scales with base mesh size, causing OOM at HPC scale underworldcode/underworld3#643 None bknight1 None None 0:41:16 None
Problem with setting VelocityBC using LecodeIsostasy #766 None jaime-almeida 8 days, 17:18:04 None 0:08:17 None
uw.Params silently ignores negative CLI values (-uw_x -1 falls back to the default) underworldcode/underworld3#642 None lmoresi None None None None
evaluate() returns large negative values for a non-negative expression (sqrt invariant) at in-domain points near a boundary singularity underworldcode/underworld3#641 None lmoresi None None None None
Checkpoint round-trip corrupts fault-adjacent DOFs on split meshes underworldcode/underworld3#640 None lmoresi None None None None
test_0054_hang_report leaks a spinning child process whenever pytest is killed (7 orphans, 7 cores) underworldcode/underworld3#639 None lmoresi None None None None
3-D boundary-flux recovery supports only P1/P2 triangular traces, so dynamic topography cannot be cross-validated underworldcode/underworld3#637 None lmoresi None None None None
Document Gadi MPI rank-placement performance for MatMult-dominated Stokes solves underworldcode/underworld3#635 None gthyagi None None None None
Grad-div penalty breaks POINTWISE traction recovery (28% on dynamic topography); facet-integrated is fine underworldcode/underworld3#633 None lmoresi None None None None
Geometric aggregation for placed-hierarchy FMG: coarse levels as decimated point clouds, not band-only meshes underworldcode/underworld3#629 None lmoresi None None None None
adapt: snap_level_boundaries guards its allreduce on a rank-local mask (np>1 hang) underworldcode/underworld3#627 None lmoresi None None 1 day, 2:09:15 None
3-D cut-in-band: author the slit into the thin-volume assembly (the carve-based mid-plane cut cannot work) underworldcode/underworld3#626 None lmoresi None None None None
Stokes pressure sub-solve runs at its 200-iteration cap — the inner Schur solve is silently unconverged and dominates solve time underworldcode/underworld3#625 None lmoresi None None None None
Stokes outer Krylov is PETSc-default gmres around fgmres inner solves — the flexible-outer rule applied to the sub-blocks but the outer was never set underworldcode/underworld3#624 None lmoresi None None None None
place_sheet fill drifts the domain volume on steeply graded edge_split children underworldcode/underworld3#623 None lmoresi None None None None
Custom-P V-cycles across a cut level cost more than they save (7x slower than GAMG at 11x fewer iterations) underworldcode/underworld3#622 None lmoresi None None None None
Fault-network place route: h_far builds an 8x-denser far field than embed underworldcode/underworld3#621 None lmoresi None None None None
cells_supporting returns an empty fault zone on a 3-D mesh underworldcode/underworld3#620 None lmoresi None None None None
StructuredQuadBox mesh cache filename omits the element resolution: concurrent runs at different resolutions collide underworldcode/underworld3#618 None lmoresi None None 13:42:31 None
boundary_flux() returns ~1e12 on Stokes_Constrained underworldcode/underworld3#614 None lmoresi None None None None
place_surface: _sheet_distance's per-triangle loop is the placement bottleneck once sheets are resampled fine underworldcode/underworld3#613 None lmoresi None None None None
test_global_evaluate_after_migration hangs at np=4, and its file is in neither parallel-test glob underworldcode/underworld3#611 None lmoresi None None None None
adapt-on-top: ~90% of wall clock is repeated whole-mesh Python bookkeeping, not the transform underworldcode/underworld3#610 None lmoresi None None None None
Rotated free slip meets a component Dirichlet wall: a local pressure error at the shared corner underworldcode/underworld3#608 None lmoresi None None None None
Stokes_Constrained: multiplier() is not the whole boundary traction — the augmented-Lagrangian share is missing underworldcode/underworld3#607 None lmoresi None None None None
evaluate() silently returns wrong values in parallel for points the rank does not own — including mesh nodes underworldcode/underworld3#606 None lmoresi None None None None
Points on a convex curved boundary are always extrapolated, silently, with O(h) error underworldcode/underworld3#605 None lmoresi None None 1:40:15 None
A located point can interpolate to NaN, and #602 makes that invisible underworldcode/underworld3#604 None lmoresi None None None None
Two test files share the number 1029 (faulted medium and Zhong 2008) underworldcode/underworld3#600 None lmoresi None None 1 day, 21:49:17 None
Cutting a thin labelled band along its centre-line can snap a band-boundary vertex onto the cut underworldcode/underworld3#595 None lmoresi None None None None
Eighteen test modules build state at import: retire the collection-guard ratchet list underworldcode/underworld3#587 None lmoresi None None None None
Stokes velocity KSP truncates silently at its default 200-iteration cap underworldcode/underworld3#585 None lmoresi None None None None
GAMG defaults deviate from PETSc's and cripple it: pc_mg_type=additive, and block size 1 on vector fields underworldcode/underworld3#579 None lmoresi None None 2 days, 9:51:55 None
CylindricalStokes(boundary='zero') leaves the pressure nullspace in place underworldcode/underworld3#577 None lmoresi None None 4 days, 1:13:20 None
Stokes outer Krylov defaults to gmres while the fieldsplit sub-blocks are Krylov solves — must be fgmres underworldcode/underworld3#576 None lmoresi None None 2 days, 22:51:03 None
Nothing prevents a test module from mutating global state at import — add a collection-time guard underworldcode/underworld3#575 None lmoresi None None 1 day, 16:41:58 None
CI wall-clock tracks total test time: split the batches across parallel jobs (the 60-minute cap was reached, 120 is a stop-gap) underworldcode/underworld3#573 None lmoresi None None None None
Audit scripts/test.sh against the test tree: four coverage gaps in two days, each of which hid a real defect underworldcode/underworld3#570 None lmoresi None None None None
mesh.cell_size() is partition-dependent (kd-tree of this rank's centroids) — and add_nitsche_bc(local_h=True) is the DEFAULT, so Nitsche answers move 6.6e-03 between rank counts underworldcode/underworld3#569 None lmoresi None None None None
Three point-locator tests fail when xdist worker count changes the file grouping underworldcode/underworld3#567 None lmoresi None None 11:55:13 None
Constrained free-slip is partition-dependent (3.4%): boundary normals accumulated rank-locally — and the rotated tests compare against a golden recorded on another host underworldcode/underworld3#564 None lmoresi None None 6:56:17 None
The mesh cache races: '.meshes' is hardcoded in 42 places, so two concurrent UW3 processes in one directory corrupt each other underworldcode/underworld3#563 None lmoresi None None 17:43:16 None
FreeSurface records hscale but not tscale, so a published benchmark checkpoint cannot be evaluated at matched physical time underworldcode/underworld3#562 None lmoresi None None None None
Rotated free-slip: the vertex normal is a bisector but assembly is facet-wise, so a kinked boundary with unequal facets leaves the pressure gauge unpinned underworldcode/underworld3#560 None lmoresi None None 19:54:17 None
pull_vertex_onto: two control points can claim the same vertex, silently unplacing the first underworldcode/underworld3#559 None lmoresi None None None None
evaluate returns NaN in parallel for interior points the 50-neighbour walk cannot find (18 at np2, 120 at np4) — pre-existing underworldcode/underworld3#558 None lmoresi None None 4:26:00 None
Outcrop on curved boundaries: the wall descriptor is (axis, value) everywhere underworldcode/underworld3#555 None lmoresi None None None None
Thin viscous sheet (plane stress) solver — with a published analytic benchmark already available underworldcode/underworld3#554 None lmoresi None None None None
fault_split: allow a slit that crosses the boundary transversally (the daylighting contact) underworldcode/underworld3#553 None lmoresi None None None None
evaluate / global_evaluate: one pass over the locator, not five patches (anti-scaling to np=8, a smoothed substitution, an uncontained cell hint) underworldcode/underworld3#551 None lmoresi None None None None
2-D fault zones cannot reach a boundary — the outcrop machinery exists but is never wired into the ribbon path underworldcode/underworld3#549 None lmoresi None None 14:36:23 None
Stokes pointwise-function JIT: cache=False bypasses the rank-0 compile gate (every MPI rank compiles), and -O3 OOM-kills gcc on large expressions underworldcode/underworld3#547 None bknight1 None None None None
Rotated workspace cache follow-ups from the #543 review: config latch into the cached KSP (m1), enumeration reuse by coincidence (m3) underworldcode/underworld3#546 None lmoresi None None None None
What should the rheology be where two fault zones overlap at a high angle? underworldcode/underworld3#544 None lmoresi None None None None
pull_vertex_onto can take the vertex from a neighbouring cell, so the tip cell has no on-line corner underworldcode/underworld3#542 None lmoresi None None 3 days, 6:31:57 None
SurfaceCollection nearest-fault director is non-functional in 2-D (three separate faults) underworldcode/underworld3#540 None lmoresi None None None None
TI: expose the compliance (inverse) tensor — same structure, reciprocal scale underworldcode/underworld3#539 None lmoresi None None None None
Gamma_P1 returns wrong boundary normals on a box: left/bottom rotated 90 deg, right/top position-dependent underworldcode/underworld3#538 None lmoresi None None None None
MMPDE mover: accel="cg" stalls after ~9 outer iterations and reports convergence underworldcode/underworld3#531 None lmoresi None None None None
CI flake: MPI_Init dies in UCX on some Azure runners (mana_0 verbs transport) underworldcode/underworld3#528 None lmoresi None None 3:47:49 None
place_sheet parallel rebuild: face/edge cone orientations unreconciled across the point SF — parallel FE on placed meshes assembles a wrong operator underworldcode/underworld3#520 None lmoresi None None 2:06:04 None
Geometric-MG bundle pairs a gmres smoother with a non-flexible outer KSP: converges by recurrence while the true residual stalls underworldcode/underworld3#514 None lmoresi None None 3 days, 6:42:31 None
global_evaluate: standalone probe with rank-distinct off-domain points deadlocks at np=4 (predates #488) underworldcode/underworld3#513 None lmoresi None None 4 days, 23:30:31 None
adapt/relax follow-ups from the #488 re-review: empty-rank eval_metric skip (3 sites), reconnect invariant guard, vacuous partition test underworldcode/underworld3#512 None lmoresi None None 9 days, 3:30:08 None
UWGeodynamics equivalent underworldcode/underworld3#508 None juliusdeblaaij 1:23:35 None None None
ViscoPlasticFlowModel + split-node fault path + consistent tangent: velocity PC setup dies with 'Computed maximum singular value as zero' (error 77) underworldcode/underworld3#507 None lmoresi None None None None
Dead bc_is = bc_label.getStratumIS(value) beside the natural-BC DS registration invites a rank-local skip underworldcode/underworld3#506 None lmoresi None None 10 days, 17:53:45 None
test_0050_utils.py runs two Stokes solves at module scope — pytest COLLECTION executes them and whole-directory runs hang silently underworldcode/underworld3#505 None lmoresi None None 10 days, 18:07:08 None
CI: the rotated free-slip suite (test_1018_*) is in no scripts/test.sh batch — its regression tests never run underworldcode/underworld3#504 None lmoresi None None 5 days, 22:36:06 None
Analytic normal for add_rotated_freeslip_bc fails on any mesh after the first (unwrap canonicalises coordinates to the first mesh's frame) underworldcode/underworld3#501 None lmoresi None None 20 days, 17:46:00 None
timing.print_table dropped display_fraction/group_by/output_file; 18 examples abort on it underworldcode/underworld3#499 None lmoresi None None 7 days, 20:34:11 None
EnhancedMeshVariable.clone() drops its arguments, breaking six shipped examples underworldcode/underworld3#498 None lmoresi None None 7 days, 20:38:35 None
Rotated-path field copy-back drops inhomogeneous essential (Dirichlet) values underworldcode/underworld3#497 None lmoresi None None 2 days, 1:52:09 None
FreeSurface 3D: pin the Y20 spherical relaxation rate in CI (test_1072 is capability-only) underworldcode/underworld3#496 None lmoresi None None 29 days, 19:49:21 None
Stokes_Constrained free-slip: the answer is partition-dependent (np2 iso -3.4%, np4 ti +2.8%) — not an environment-sensitive golden underworldcode/underworld3#495 None lmoresi None None 23 days, 1:34:04 None
cut_along_lines with several lines in one call returns incomplete chains, silently underworldcode/underworld3#494 None lmoresi None None None None
Creating a MeshVariable destroys the previous mesh.dm; a held handle segfaults (use-after-free) underworldcode/underworld3#492 None lmoresi None None 9 days, 11:44:35 None
uw.function.evaluate returns negative values for a squared DERIVATIVE expression underworldcode/underworld3#491 None lmoresi None None 11 days, 1:45:31 None
yield_anchor follow-ups from the #475 review: snes_max_it latch resurrect, side-attribution docstring, small validation gaps underworldcode/underworld3#490 None lmoresi None None 15 days, 20:57:46 None

This report was generated with the Issue Metrics Action
Search query used to find these items: repo:underworldcode/underworld2 repo:underworldcode/underworld3 is:issue created:2026-08-01..2026-08-31 -reason:"not planned"

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions