fix(processmonitor): Skip null pidusage entries when aggregating process-group memory/CPU to avoid errors
This commit is contained in:
		@@ -1,5 +1,12 @@
 | 
			
		||||
# Changelog
 | 
			
		||||
 | 
			
		||||
## 2025-09-03 - 5.10.1 - fix(processmonitor)
 | 
			
		||||
Skip null pidusage entries when aggregating process-group memory/CPU to avoid errors
 | 
			
		||||
 | 
			
		||||
- Add defensive check for null/undefined entries returned by pidusage before accessing memory/cpu fields
 | 
			
		||||
- Log a debug message when an individual process stat is null (process may have exited)
 | 
			
		||||
- Improve robustness of ProcessMonitor.getProcessGroupStats to prevent runtime exceptions during aggregation
 | 
			
		||||
 | 
			
		||||
## 2025-09-01 - 5.10.0 - feat(daemon)
 | 
			
		||||
Add crash log manager with rotation and integrate crash logging; improve IPC & process listener cleanup
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -3,6 +3,6 @@
 | 
			
		||||
 */
 | 
			
		||||
export const commitinfo = {
 | 
			
		||||
  name: '@git.zone/tspm',
 | 
			
		||||
  version: '5.10.0',
 | 
			
		||||
  version: '5.10.1',
 | 
			
		||||
  description: 'a no fuzz process manager'
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -435,8 +435,13 @@ export class ProcessMonitor extends EventEmitter {
 | 
			
		||||
              let totalMemory = 0;
 | 
			
		||||
              let totalCpu = 0;
 | 
			
		||||
              for (const key in stats) {
 | 
			
		||||
                totalMemory += stats[key].memory;
 | 
			
		||||
                totalCpu += Number.isFinite(stats[key].cpu) ? stats[key].cpu : 0;
 | 
			
		||||
                // Check if stats[key] exists and is not null (process may have exited)
 | 
			
		||||
                if (stats[key]) {
 | 
			
		||||
                  totalMemory += stats[key].memory || 0;
 | 
			
		||||
                  totalCpu += Number.isFinite(stats[key].cpu) ? stats[key].cpu : 0;
 | 
			
		||||
                } else {
 | 
			
		||||
                  this.logger.debug(`Process ${key} stats are null (process may have exited)`);
 | 
			
		||||
                }
 | 
			
		||||
              }
 | 
			
		||||
 | 
			
		||||
              this.logger.debug(
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user