Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Change JMeter properties backend to a lock-free representation to avoid run-time lock contention

Abierto
#6,723 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
35/100
Tipo de issue
Refactorización
Claridad
Bastante claro
Estado de actividad
Tranquilo
Stack tecnológico
java

Línea de trabajo

Comienza siguiendo el backend de propiedades de JMeter utilizado por los scripts Groovy de JSR223 y las funciones ${__P()}/${__property()}. Define cómo las lecturas concurrentes a través del objeto implícito props pueden evitar la contención de un bloqueo global, mientras las escrituras siguen sincronizadas y son compatibles con java.util.Properties; se considera terminado cuando se conserva el comportamiento de tipos existente bajo acceso concurrente.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

enhancement to-triage
Use case
Description

In high-concurrency performance testing scenarios, global property queries performed during active test execution (for example, through JSR223 Groovy scripts accessing the implicit props object or through ${__P()} / ${__property()} functions) create a global synchronization bottleneck.

java.util.Properties inherits directly from java.util.Hashtable, where core accessors like .get(Object) and mutators like .put() are declared as synchronized methods. In highly concurrent test plans (e.g. 500+ threads executing JSR223 elements concurrently), threads end up serialization-blocked waiting to acquire the monitor lock of the global properties instance.

Possible solution

Introduce a subclass of java.util.Properties named ConcurrentProperties which internally delegates read queries to a backing ConcurrentHashMap, while keeping writes synchronized and in sync with the parent Hashtable data model. This provides completely lock-free read lookups under concurrent scripts while maintaining full type compatibility (instanceof java.util.Properties).

Possible workarounds

No response

JMeter Version

6.0.0-SNAPSHOT

Java Version

No response

OS Version

No response

Lenguaje dominante
Java
Estrellas
9.6k
Forks
2.3k
Merge medio
20 h 42 min
PR fusionados (30 d)
10

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de apache/jmeter

Todos los issues de apache/jmeter

Issues similares

Más issues de Java

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.