Skip to content

Critical bug fixes for bulk operations and performance optimizations#24

Merged
coelacant1 merged 2 commits intomainfrom
testing
Jan 9, 2026
Merged

Critical bug fixes for bulk operations and performance optimizations#24
coelacant1 merged 2 commits intomainfrom
testing

Conversation

@coelacant1
Copy link
Copy Markdown
Owner


name: Critical bug fix for bulk operation scripts (mostly VM)
about: Critical bug fixes for bulk operations and performance optimizations
title: "[PR] Critical bug fixes for bulk operations and performance optimizations"
labels: bug
assignees: 'coelacant1'

Description

Fixed

  • CRITICAL - Fixed Bash dynamic scoping bug causing infinite recursion in bulk operations
  • CRITICAL - Fixed potential infinite polling in status wait functions
  • Fixed wasteful waiting when VM stop fails
  • Fixed temp file naming conflict in GUI.sh sessions
  • Added support for custom SSH ports
  • Fixed random node ordering in GUI
  • Cleaned up error handling in RemoteExecutor
  • Fixed TRACE logs appearing when LOG_LEVEL=INFO

Changed

  • Reduced redundant queries in bulk operations
  • Added comprehensive logging to bulk operations framework

Added

  • Added connection testing before script execution

Type of Change

  • Bug fix (non-breaking change fixing an issue)
  • New feature (non-breaking change adding functionality)
  • Breaking change (fix or feature that would break existing functionality)
  • Documentation update
  • Other (please describe):

How Has This Been Tested?

Tested across ~10 nodes on a 20 node cluster, performing various bulk vm scripts.

Checklist

  • I have performed a self-review of my own code.
  • I have commented my code where necessary.
  • I have made corresponding changes to the documentation (if applicable).
  • My changes do not generate new warnings or errors.
  • I have tested this code.

Related Issues

#23

### Fixed
- **Bug: VerifySourceCalls.py Multi-line Source Removal Bug**
  - Fixed logic that caused orphaned error handler blocks when removing unused sources
  - Tool previously only skipped ONE line after shellcheck directive
  - Now properly handles multi-line source statements with error handlers (`|| { ... }`)
  - Implements brace-depth tracking to remove entire error handler blocks
  - This bug was the root cause of the HostInfo.sh orphaned code issue discovered in v2.1.6

### Changed
- **Startup Dependency Check** - Added informational dependency warning at GUI.sh startup
  - Shows friendly warning if `jq` is not installed
  - Provides installation commands for all major distributions
  - Non-blocking - allows local execution without optional dependencies
  - Complements the existing remote execution dependency check
…izations

### Fixed
- **CRITICAL** - Fixed Bash dynamic scoping bug causing infinite recursion in bulk operations
- **CRITICAL** - Fixed potential infinite polling in status wait functions
- Fixed wasteful waiting when VM stop fails
- Fixed temp file naming conflict in GUI.sh sessions
- Added support for custom SSH ports
- Fixed random node ordering in GUI
- Cleaned up error handling in RemoteExecutor
- Fixed TRACE logs appearing when LOG_LEVEL=INFO

### Changed
- Reduced redundant queries in bulk operations
- Added comprehensive logging to bulk operations framework

### Added
- Added connection testing before script execution

### Known Issues
- **Script Cancellation** - Cannot cancel scripts when connection is dropped
  - Possibly add method to automatically stop scripts when the SSH connection breaks

### Technical Details
- Added TRACE log level support with priority 0
- Modified `__vm_exists__`/`__ct_exists__` to accept `--get-node` flag, refactored 13 operation functions, hardened `__vm_wait_for_status__` and `__ct_wait_for_status__` with timeout protection
- Fixed callback parameter passing, added trace logging, updated tmpdir naming
- Added `__test_remote_connection__` function, port parameter to SSH/SCP functions, updated log file naming
- Added `NODE_ORDER` array and `__get_node_port__` function
- Added password validation in all remote configuration flows
- Added port field in `nodes.json.template`
@coelacant1 coelacant1 self-assigned this Jan 9, 2026
@coelacant1 coelacant1 added bug Something isn't working documentation Improvements or additions to documentation enhancement New feature or request labels Jan 9, 2026
@coelacant1 coelacant1 merged commit 756cd1e into main Jan 9, 2026
1 check passed
@coelacant1 coelacant1 deleted the testing branch February 25, 2026 17:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working documentation Improvements or additions to documentation enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant