mirror of
https://github.com/OpenHands/OpenHands.git
synced 2025-12-26 05:48:36 +08:00
fix: disable prlimit since limiting --vm breaks nodejs (#6765)
This commit is contained in:
parent
f4b123f73b
commit
a7bb73ded2
@ -189,13 +189,15 @@ class BashSession:
|
||||
if self.username in ['root', 'openhands']:
|
||||
# This starts a non-login (new) shell for the given user
|
||||
_shell_command = f'su {self.username} -'
|
||||
# otherwise, we are running as the CURRENT USER (e.g., when running LocalRuntime)
|
||||
if self.max_memory_mb is not None:
|
||||
window_command = (
|
||||
f'prlimit --as={self.max_memory_mb * 1024 * 1024} {_shell_command}'
|
||||
)
|
||||
else:
|
||||
window_command = _shell_command
|
||||
|
||||
# FIXME: we will introduce memory limit using sysbox-runc in coming PR
|
||||
# # otherwise, we are running as the CURRENT USER (e.g., when running LocalRuntime)
|
||||
# if self.max_memory_mb is not None:
|
||||
# window_command = (
|
||||
# f'prlimit --as={self.max_memory_mb * 1024 * 1024} {_shell_command}'
|
||||
# )
|
||||
# else:
|
||||
window_command = _shell_command
|
||||
|
||||
logger.debug(f'Initializing bash session with command: {window_command}')
|
||||
session_name = f'openhands-{self.username}-{uuid.uuid4()}'
|
||||
|
||||
@ -36,78 +36,78 @@ def test_stress_docker_runtime(temp_dir, runtime_cls, repeat=1):
|
||||
_close_test_runtime(runtime)
|
||||
|
||||
|
||||
def test_stress_docker_runtime_hit_memory_limits(temp_dir, runtime_cls):
|
||||
"""Test runtime behavior under resource constraints."""
|
||||
runtime, config = _load_runtime(
|
||||
temp_dir,
|
||||
runtime_cls,
|
||||
docker_runtime_kwargs={
|
||||
'cpu_period': 100000, # 100ms
|
||||
'cpu_quota': 100000, # Can use 100ms out of each 100ms period (1 CPU)
|
||||
'mem_limit': '4G', # 4 GB of memory
|
||||
'memswap_limit': '0', # No swap
|
||||
'mem_swappiness': 0, # Disable swapping
|
||||
'oom_kill_disable': False, # Enable OOM killer
|
||||
},
|
||||
runtime_startup_env_vars={
|
||||
'RUNTIME_MAX_MEMORY_GB': '3',
|
||||
},
|
||||
)
|
||||
# def test_stress_docker_runtime_hit_memory_limits(temp_dir, runtime_cls):
|
||||
# """Test runtime behavior under resource constraints."""
|
||||
# runtime, config = _load_runtime(
|
||||
# temp_dir,
|
||||
# runtime_cls,
|
||||
# docker_runtime_kwargs={
|
||||
# 'cpu_period': 100000, # 100ms
|
||||
# 'cpu_quota': 100000, # Can use 100ms out of each 100ms period (1 CPU)
|
||||
# 'mem_limit': '4G', # 4 GB of memory
|
||||
# 'memswap_limit': '0', # No swap
|
||||
# 'mem_swappiness': 0, # Disable swapping
|
||||
# 'oom_kill_disable': False, # Enable OOM killer
|
||||
# },
|
||||
# runtime_startup_env_vars={
|
||||
# 'RUNTIME_MAX_MEMORY_GB': '3',
|
||||
# },
|
||||
# )
|
||||
|
||||
action = CmdRunAction(
|
||||
command='sudo apt-get update && sudo apt-get install -y stress-ng'
|
||||
)
|
||||
logger.info(action, extra={'msg_type': 'ACTION'})
|
||||
obs = runtime.run_action(action)
|
||||
logger.info(obs, extra={'msg_type': 'OBSERVATION'})
|
||||
assert obs.exit_code == 0
|
||||
# action = CmdRunAction(
|
||||
# command='sudo apt-get update && sudo apt-get install -y stress-ng'
|
||||
# )
|
||||
# logger.info(action, extra={'msg_type': 'ACTION'})
|
||||
# obs = runtime.run_action(action)
|
||||
# logger.info(obs, extra={'msg_type': 'OBSERVATION'})
|
||||
# assert obs.exit_code == 0
|
||||
|
||||
action = CmdRunAction(
|
||||
command='stress-ng --vm 1 --vm-bytes 6G --timeout 30s --metrics'
|
||||
)
|
||||
action.set_hard_timeout(120)
|
||||
logger.info(action, extra={'msg_type': 'ACTION'})
|
||||
obs = runtime.run_action(action)
|
||||
logger.info(obs, extra={'msg_type': 'OBSERVATION'})
|
||||
assert 'aborted early, out of system resources' in obs.content
|
||||
assert obs.exit_code == 3 # OOM killed!
|
||||
# action = CmdRunAction(
|
||||
# command='stress-ng --vm 1 --vm-bytes 6G --timeout 30s --metrics'
|
||||
# )
|
||||
# action.set_hard_timeout(120)
|
||||
# logger.info(action, extra={'msg_type': 'ACTION'})
|
||||
# obs = runtime.run_action(action)
|
||||
# logger.info(obs, extra={'msg_type': 'OBSERVATION'})
|
||||
# assert 'aborted early, out of system resources' in obs.content
|
||||
# assert obs.exit_code == 3 # OOM killed!
|
||||
|
||||
_close_test_runtime(runtime)
|
||||
# _close_test_runtime(runtime)
|
||||
|
||||
|
||||
def test_stress_docker_runtime_within_memory_limits(temp_dir, runtime_cls):
|
||||
"""Test runtime behavior under resource constraints."""
|
||||
runtime, config = _load_runtime(
|
||||
temp_dir,
|
||||
runtime_cls,
|
||||
docker_runtime_kwargs={
|
||||
'cpu_period': 100000, # 100ms
|
||||
'cpu_quota': 100000, # Can use 100ms out of each 100ms period (1 CPU)
|
||||
'mem_limit': '4G', # 4 GB of memory
|
||||
'memswap_limit': '0', # No swap
|
||||
'mem_swappiness': 0, # Disable swapping
|
||||
'oom_kill_disable': False, # Enable OOM killer
|
||||
},
|
||||
runtime_startup_env_vars={
|
||||
'RUNTIME_MAX_MEMORY_GB': '7',
|
||||
},
|
||||
)
|
||||
# def test_stress_docker_runtime_within_memory_limits(temp_dir, runtime_cls):
|
||||
# """Test runtime behavior under resource constraints."""
|
||||
# runtime, config = _load_runtime(
|
||||
# temp_dir,
|
||||
# runtime_cls,
|
||||
# docker_runtime_kwargs={
|
||||
# 'cpu_period': 100000, # 100ms
|
||||
# 'cpu_quota': 100000, # Can use 100ms out of each 100ms period (1 CPU)
|
||||
# 'mem_limit': '4G', # 4 GB of memory
|
||||
# 'memswap_limit': '0', # No swap
|
||||
# 'mem_swappiness': 0, # Disable swapping
|
||||
# 'oom_kill_disable': False, # Enable OOM killer
|
||||
# },
|
||||
# runtime_startup_env_vars={
|
||||
# 'RUNTIME_MAX_MEMORY_GB': '7',
|
||||
# },
|
||||
# )
|
||||
|
||||
action = CmdRunAction(
|
||||
command='sudo apt-get update && sudo apt-get install -y stress-ng'
|
||||
)
|
||||
logger.info(action, extra={'msg_type': 'ACTION'})
|
||||
obs = runtime.run_action(action)
|
||||
logger.info(obs, extra={'msg_type': 'OBSERVATION'})
|
||||
assert obs.exit_code == 0
|
||||
# action = CmdRunAction(
|
||||
# command='sudo apt-get update && sudo apt-get install -y stress-ng'
|
||||
# )
|
||||
# logger.info(action, extra={'msg_type': 'ACTION'})
|
||||
# obs = runtime.run_action(action)
|
||||
# logger.info(obs, extra={'msg_type': 'OBSERVATION'})
|
||||
# assert obs.exit_code == 0
|
||||
|
||||
action = CmdRunAction(
|
||||
command='stress-ng --vm 1 --vm-bytes 6G --timeout 30s --metrics'
|
||||
)
|
||||
action.set_hard_timeout(120)
|
||||
logger.info(action, extra={'msg_type': 'ACTION'})
|
||||
obs = runtime.run_action(action)
|
||||
logger.info(obs, extra={'msg_type': 'OBSERVATION'})
|
||||
assert obs.exit_code == 0
|
||||
# action = CmdRunAction(
|
||||
# command='stress-ng --vm 1 --vm-bytes 6G --timeout 30s --metrics'
|
||||
# )
|
||||
# action.set_hard_timeout(120)
|
||||
# logger.info(action, extra={'msg_type': 'ACTION'})
|
||||
# obs = runtime.run_action(action)
|
||||
# logger.info(obs, extra={'msg_type': 'OBSERVATION'})
|
||||
# assert obs.exit_code == 0
|
||||
|
||||
_close_test_runtime(runtime)
|
||||
# _close_test_runtime(runtime)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user