ECS:xDoctor:RAP178 - JournalChunkGCTaskScanner.java中的 java.lang.NullPointerException

Summary: 由于 java.lang.NullPointerException,垃圾收集无法回收日志区块。

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Symptoms

  • 高 L2 元数据利用率
  • 高日志利用率
  • 高容量 L2 利用率

区块管理器 (cm.log) 记录以下错误: java.lang.NullPointerException

2024-01-16T16:38:57,443 [TaskScheduler-ChunkManager-DEFAULT_BACKGROUND_OPERATION-ScheduledExecutor-117] ERROR  JournalChunkGCTaskScanner.java (line 338) Exception from garbageCollect
java.lang.NullPointerException
        at com.emc.storageos.data.object.devicescanner.RepGroupObserverImpl.getFailedZones(RepGroupObserverImpl.java:781)
        at com.emc.storageos.data.chunkmanager.JournalChunkGCTaskScanner.isFailedZone(JournalChunkGCTaskScanner.java:360)
        at com.emc.storageos.data.chunkmanager.JournalChunkGCTaskScanner.runTask(JournalChunkGCTaskScanner.java:237)
        at com.emc.storageos.data.object.task.TaskScanner.scan(TaskScanner.java:81)
        at com.emc.storageos.data.object.Scanner$ScannerThread.run(Scanner.java:269)
        at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
        at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:131)
        at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:74)
        at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:82)
        at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:834)

验证日志区块任务扫描程序是否在cm.log文件中引发异常:
# svc_log -f "JournalChunkGCTaskScanner.java" "NullPointerException" -files cm-error.log* -start 10m

admin@ecs-node:~> svc_log -f "JournalChunkGCTaskScanner.java" "Exception" -files cm-error.log* -start 10m
svc_log v1.0.33 (svc_tools v2.20.0)                 Started 2024-12-13 11:51:29

Running on nodes:                        <All nodes>
Time range:                              2024-12-13 11:41:29 - 2024-12-13 11:51:29
Filter string(s):                        'JournalChunkGCTaskScanner.java' AND 'Exception'
File(s) to search:                               cm-error.log*

Show nodename(s):                        True
Show nodename(s):                        True

169.254.1.1 2024-12-13T11:43:54,021 [TaskScheduler-ChunkManager-DEFAULT_BACKGROUND_OPERATION-ScheduledExecutor-074] ERROR  JournalChunkGCTaskScanner.java (line 338) Exception from garbageCollect
java.lang.NullPointerException
169.254.1.1 2024-12-13T11:43:54,022 [TaskScheduler-ChunkManager-DEFAULT_BACKGROUND_OPERATION-ScheduledExecutor-074] ERROR  JournalChunkGCTaskScanner.java (line 338) Exception from garbageCollect
java.lang.NullPointerException
169.254.1.1 2024-12-13T11:43:54,036 [TaskScheduler-ChunkManager-DEFAULT_BACKGROUND_OPERATION-ScheduledExecutor-074] ERROR  JournalChunkGCTaskScanner.java (line 338) Exception from garbageCollect
java.lang.NullPointerException
.......
169.254.1.2 2024-12-13T11:50:18,135 [TaskScheduler-ChunkManager-DEFAULT_BACKGROUND_OPERATION-ScheduledExecutor-282] ERROR  JournalChunkGCTaskScanner.java (line 338) Exception from garbageCollect
java.lang.NullPointerException
169.254.1.2 2024-12-13T11:50:18,144 [TaskScheduler-ChunkManager-DEFAULT_BACKGROUND_OPERATION-ScheduledExecutor-282] ERROR  JournalChunkGCTaskScanner.java (line 338) Exception from garbageCollect
java.lang.NullPointerException
169.254.1.2 2024-12-13T11:50:18,149 [TaskScheduler-ChunkManager-DEFAULT_BACKGROUND_OPERATION-ScheduledExecutor-282] ERROR  JournalChunkGCTaskScanner.java (line 338) Exception from garbageCollect
java.lang.NullPointerException
.......
169.254.1.6 2024-12-13T11:49:43,389 [TaskScheduler-ChunkManager-DEFAULT_BACKGROUND_OPERATION-ScheduledExecutor-080] ERROR  JournalChunkGCTaskScanner.java (line 338) Exception from garbageCollect
java.lang.NullPointerException
169.254.1.6 2024-12-13T11:49:43,390 [TaskScheduler-ChunkManager-DEFAULT_BACKGROUND_OPERATION-ScheduledExecutor-080] ERROR  JournalChunkGCTaskScanner.java (line 338) Exception from garbageCollect
java.lang.NullPointerException
169.254.1.6 2024-12-13T11:49:43,411 [TaskScheduler-ChunkManager-DEFAULT_BACKGROUND_OPERATION-ScheduledExecutor-080] ERROR  JournalChunkGCTaskScanner.java (line 338) Exception from garbageCollect
java.lang.NullPointerException
.......

# svc_log -f "JournalChunkGCTaskScanner.java" "NullPointerException" -files 'cm-error.log' -start 1d -st hour -sh*

admin@ecs-node:~> svc_log -f "JournalChunkGCTaskScanner.java" "NullPointerException" -files 'cm-error.log' -start 1d -st hour -sh*
svc_log v1.0.33 (svc_tools v2.20.0)                 Started 2024-12-13 11:45:46

Running on nodes:                        <All nodes>
Time range:                              2024-12-12 11:45:46 - 2024-12-13 11:45:46
Filter string(s):                        'JournalChunkGCTaskScanner.java' AND 'NullPointerException'
File(s) to search:                               cm-error.log*

Show nodename(s):                        True
Show nodename(s):                        True

Count of message occurrences per hour:

                    # Log
Time                Entries
---------------------------
2024-12-12 11:xx    58500
2024-12-12 12:xx    224100
2024-12-12 13:xx    224203
2024-12-12 14:xx    224296
2024-12-12 15:xx    223711
2024-12-12 16:xx    224017
2024-12-12 17:xx    224071
2024-12-12 18:xx    224322
2024-12-12 19:xx    225198
2024-12-12 20:xx    224965
2024-12-12 21:xx    224214
2024-12-12 22:xx    224906
2024-12-12 23:xx    225339
2024-12-13 00:xx    224910
2024-12-13 01:xx    225692
2024-12-13 02:xx    225735
2024-12-13 03:xx    225804
2024-12-13 04:xx    226018
2024-12-13 05:xx    226271
2024-12-13 06:xx    226475
2024-12-13 07:xx    225937
2024-12-13 08:xx    226782
2024-12-13 09:xx    226879
2024-12-13 10:xx    226409
2024-12-13 11:xx    158538

Total:              5397292

Cause

空指针异常错误 JournalChunkGCTaskScanner 可能会导致日志垃圾收集问题,最终导致元数据开销过高。

Resolution

将 ECS Appliance 软件升级到 3.8.0.6 或更高版本。

Affected Products

ECS, ECS Appliance, ECS Appliance Gen 1, ECS Appliance Gen 2, ECS Appliance Gen 3

Products

ECS Appliance Hardware Gen3 EX5000, ECS Appliance Hardware Gen3 EX300, ECS Appliance Hardware Gen3 EX3000, ECS Appliance Hardware Gen1 U-Series, ECS Appliance Hardware Gen1 C-Series, ECS Appliance Hardware Gen2 C-Series , ECS Appliance Hardware Gen2 D-Series, ECS Appliance Hardware Gen2 U-Series, ECS Appliance Hardware Gen3 EX500, ECS Appliance Hardware Gen3 EXF900, ECS Appliance Hardware Series, ECS Appliance Software with Encryption, ECS Appliance Software without Encryption, ECS Software ...
Article Properties
Article Number: 000227107
Article Type: Solution
Last Modified: 10 Sept 2025
Version:  4
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.