This is an automated email from the ASF dual-hosted git repository.
ethanfeng pushed a commit to branch branch-0.5
in repository https://gitbox.apache.org/repos/asf/celeborn.git
The following commit(s) were added to refs/heads/branch-0.5 by this push:
new 7e8a1bf61 [CELEBORN-1646] Catch exception of Files#getFileStore for
DeviceMonitor and StorageManager for input/ouput error
7e8a1bf61 is described below
commit 7e8a1bf6146f61648e22555d80b6d3a222e9e7c0
Author: SteNicholas <[email protected]>
AuthorDate: Wed Oct 16 15:55:31 2024 +0800
[CELEBORN-1646] Catch exception of Files#getFileStore for DeviceMonitor and
StorageManager for input/ouput error
### What changes were proposed in this pull request?
Catch exception of `Files#getFileStore` for `DeviceMonitor` and
`StorageManager` for input/ouput error.
### Why are the changes needed?
`DeviceMonitor` uses `Files#getFileStore` to record `DeviceOSTotalBytes`
and `DeviceOSFreeBytes` gauges at present, which could causes the metric
corruption for input/ouput error of disk.
<img width="1351" alt="image"
src="https://github.com/user-attachments/assets/eae03f33-aaa2-4803-86a8-272aa85058d1">
```
2024-10-14 12:00:11,805 [WARN] [worker-JettyThreadPool-3119995] -
org.apache.celeborn.server.common.http.HttpUtils -Logging.scala(76) -GET
/metrics failed: java.nio.file.FileSystemException: /mnt/storage01:
Input/output error
java.nio.file.FileSystemException: /mnt/storage01: Input/output error
at
sun.nio.fs.UnixException.translateToIOException(UnixException.java:91)
~[?:1.8.0_162]
at
sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
~[?:1.8.0_162]
at
sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
~[?:1.8.0_162]
at sun.nio.fs.UnixFileStore.devFor(UnixFileStore.java:57)
~[?:1.8.0_162]
at sun.nio.fs.UnixFileStore.<init>(UnixFileStore.java:64)
~[?:1.8.0_162]
at sun.nio.fs.LinuxFileStore.<init>(LinuxFileStore.java:44)
~[?:1.8.0_162]
at
sun.nio.fs.LinuxFileSystemProvider.getFileStore(LinuxFileSystemProvider.java:51)
~[?:1.8.0_162]
at
sun.nio.fs.LinuxFileSystemProvider.getFileStore(LinuxFileSystemProvider.java:39)
~[?:1.8.0_162]
at
sun.nio.fs.UnixFileSystemProvider.getFileStore(UnixFileSystemProvider.java:368)
~[?:1.8.0_162]
at java.nio.file.Files.getFileStore(Files.java:1461) ~[?:1.8.0_162]
at
org.apache.celeborn.service.deploy.worker.storage.DeviceMonitor$.getDiskUsageInfos(DeviceMonitor.scala:231)
~[celeborn-worker_2.12-0.5.0-SNAPSHOT.jar:0.5.0-SNAPSHOT]
at
org.apache.celeborn.service.deploy.worker.storage.LocalDeviceMonitor.usage$1(DeviceMonitor.scala:89)
~[celeborn-worker_2.12-0.5.0-SNAPSHOT.jar:0.5.0-SNAPSHOT]
at
org.apache.celeborn.service.deploy.worker.storage.LocalDeviceMonitor.$anonfun$init$7(DeviceMonitor.scala:91)
~[celeborn-worker_2.12-0.5.0-SNAPSHOT.jar:0.5.0-SNAPSHOT]
at
scala.runtime.java8.JFunction0$mcJ$sp.apply(JFunction0$mcJ$sp.java:23)
~[scala-library-2.12.10.jar:?]
at
org.apache.celeborn.common.metrics.source.GaugeSupplier$$anon$3.getValue(AbstractSource.scala:470)
~[celeborn-common_2.12-0.5.0-SNAPSHOT.jar:0.5.0-SNAPSHOT]
at
org.apache.celeborn.common.metrics.source.AbstractSource.recordGauge(AbstractSource.scala:346)
~[celeborn-common_2.12-0.5.0-SNAPSHOT.jar:0.5.0-SNAPSHOT]
at
org.apache.celeborn.common.metrics.source.AbstractSource.$anonfun$getMetrics$2(AbstractSource.scala:406)
~[celeborn-common_2.12-0.5.0-SNAPSHOT.jar:0.5.0-SNAPSHOT]
at
org.apache.celeborn.common.metrics.source.AbstractSource.$anonfun$getMetrics$2$adapted(AbstractSource.scala:406)
~[celeborn-common_2.12-0.5.0-SNAPSHOT.jar:0.5.0-SNAPSHOT]
at scala.collection.immutable.List.foreach(List.scala:392)
~[scala-library-2.12.10.jar:?]
at
org.apache.celeborn.common.metrics.source.AbstractSource.getMetrics(AbstractSource.scala:406)
~[celeborn-common_2.12-0.5.0-SNAPSHOT.jar:0.5.0-SNAPSHOT]
at
org.apache.celeborn.common.metrics.sink.AbstractServlet.$anonfun$getMetricsSnapshot$1(AbstractServlet.scala:34)
~[celeborn-service_2.12-0.5.0-SNAPSHOT.jar:0.5.0-SNAPSHOT]
at
scala.collection.TraversableLike.$anonfun$map$1(TraversableLike.scala:238)
~[scala-library-2.12.10.jar:?]
at scala.collection.Iterator.foreach(Iterator.scala:941)
~[scala-library-2.12.10.jar:?]
at scala.collection.Iterator.foreach$(Iterator.scala:941)
~[scala-library-2.12.10.jar:?]
at scala.collection.AbstractIterator.foreach(Iterator.scala:1429)
~[scala-library-2.12.10.jar:?]
at scala.collection.IterableLike.foreach(IterableLike.scala:74)
~[scala-library-2.12.10.jar:?]
at scala.collection.IterableLike.foreach$(IterableLike.scala:73)
~[scala-library-2.12.10.jar:?]
at scala.collection.AbstractIterable.foreach(Iterable.scala:56)
~[scala-library-2.12.10.jar:?]
at scala.collection.TraversableLike.map(TraversableLike.scala:238)
~[scala-library-2.12.10.jar:?]
at scala.collection.TraversableLike.map$(TraversableLike.scala:231)
~[scala-library-2.12.10.jar:?]
at scala.collection.AbstractTraversable.map(Traversable.scala:108)
~[scala-library-2.12.10.jar:?]
at
org.apache.celeborn.common.metrics.sink.AbstractServlet.getMetricsSnapshot(AbstractServlet.scala:34)
~[celeborn-service_2.12-0.5.0-SNAPSHOT.jar:0.5.0-SNAPSHOT]
at
org.apache.celeborn.common.metrics.sink.PrometheusServlet.$anonfun$createServletHandler$1(PrometheusServlet.scala:38)
~[celeborn-service_2.12-0.5.0-SNAPSHOT.jar:0.5.0-SNAPSHOT]
at
org.apache.celeborn.server.common.http.HttpUtils$$anon$1.doGet(HttpUtils.scala:51)
~[celeborn-service_2.12-0.5.0-SNAPSHOT.jar:0.5.0-SNAPSHOT]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:497)
~[jakarta.servlet-api-4.0.4.jar:4.0.4]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:584)
~[jakarta.servlet-api-4.0.4.jar:4.0.4]
at
org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:799)
~[jetty-servlet-9.4.52.v20230823.jar:9.4.52.v20230823]
at
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:554)
~[jetty-servlet-9.4.52.v20230823.jar:9.4.52.v20230823]
at
org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
~[jetty-server-9.4.52.v20230823.jar:9.4.52.v20230823]
at
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1440)
~[jetty-server-9.4.52.v20230823.jar:9.4.52.v20230823]
at
org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
~[jetty-server-9.4.52.v20230823.jar:9.4.52.v20230823]
at
org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:505)
~[jetty-servlet-9.4.52.v20230823.jar:9.4.52.v20230823]
at
org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
~[jetty-server-9.4.52.v20230823.jar:9.4.52.v20230823]
at
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1355)
~[jetty-server-9.4.52.v20230823.jar:9.4.52.v20230823]
at
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
~[jetty-server-9.4.52.v20230823.jar:9.4.52.v20230823]
at
org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:234)
~[jetty-server-9.4.52.v20230823.jar:9.4.52.v20230823]
at
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
~[jetty-server-9.4.52.v20230823.jar:9.4.52.v20230823]
at org.eclipse.jetty.server.Server.handle(Server.java:516)
~[jetty-server-9.4.52.v20230823.jar:9.4.52.v20230823]
at
org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:487)
~[jetty-server-9.4.52.v20230823.jar:9.4.52.v20230823]
at
org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:732)
~[jetty-server-9.4.52.v20230823.jar:9.4.52.v20230823]
at
org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:479)
~[jetty-server-9.4.52.v20230823.jar:9.4.52.v20230823]
at
org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277)
~[jetty-server-9.4.52.v20230823.jar:9.4.52.v20230823]
at
org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
~[jetty-io-9.4.52.v20230823.jar:9.4.52.v20230823]
at
org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
~[jetty-io-9.4.52.v20230823.jar:9.4.52.v20230823]
at
org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
~[jetty-io-9.4.52.v20230823.jar:9.4.52.v20230823]
at
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338)
~[jetty-util-9.4.52.v20230823.jar:9.4.52.v20230823]
at
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:315)
~[jetty-util-9.4.52.v20230823.jar:9.4.52.v20230823]
at
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173)
~[jetty-util-9.4.52.v20230823.jar:9.4.52.v20230823]
at
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131)
~[jetty-util-9.4.52.v20230823.jar:9.4.52.v20230823]
at
org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:409)
~[jetty-util-9.4.52.v20230823.jar:9.4.52.v20230823]
at
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883)
~[jetty-util-9.4.52.v20230823.jar:9.4.52.v20230823]
at
org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034)
~[jetty-util-9.4.52.v20230823.jar:9.4.52.v20230823]
at java.lang.Thread.run(Thread.java:748) ~[?:1.8.0_162]
2024-10-14 12:00:42,701 [ERROR] [worker-disk-checker] -
org.apache.celeborn.service.deploy.worker.storage.LocalDeviceMonitor
-Logging.scala(80) -Device check failed.
java.util.concurrent.ExecutionException: java.nio.file.FileSystemException:
/mnt/storage01: Input/output error
at java.util.concurrent.FutureTask.report(FutureTask.java:122)
~[?:1.8.0_162]
at java.util.concurrent.FutureTask.get(FutureTask.java:206)
~[?:1.8.0_162]
at
org.apache.celeborn.common.util.Utils$.tryWithTimeoutAndCallback(Utils.scala:950)
~[celeborn-common_2.12-0.5.0-SNAPSHOT.jar:0.5.0-SNAPSHOT]
at
org.apache.celeborn.service.deploy.worker.storage.DeviceMonitor$.highDiskUsage(DeviceMonitor.scala:268)
~[celeborn-worker_2.12-0.5.0-SNAPSHOT.jar:0.5.0-SNAPSHOT]
at
org.apache.celeborn.service.deploy.worker.storage.LocalDeviceMonitor$$anon$1.$anonfun$run$9(DeviceMonitor.scala:137)
~[celeborn-worker_2.12-0.5.0-SNAPSHOT.jar:0.5.0-SNAPSHOT]
at
org.apache.celeborn.service.deploy.worker.storage.LocalDeviceMonitor$$anon$1.$anonfun$run$9$adapted(DeviceMonitor.scala:136)
~[celeborn-worker_2.12-0.5.0-SNAPSHOT.jar:0.5.0-SNAPSHOT]
at scala.collection.Iterator.foreach(Iterator.scala:941)
~[scala-library-2.12.10.jar:?]
at scala.collection.Iterator.foreach$(Iterator.scala:941)
~[scala-library-2.12.10.jar:?]
at scala.collection.AbstractIterator.foreach(Iterator.scala:1429)
~[scala-library-2.12.10.jar:?]
at scala.collection.IterableLike.foreach(IterableLike.scala:74)
~[scala-library-2.12.10.jar:?]
at scala.collection.IterableLike.foreach$(IterableLike.scala:73)
~[scala-library-2.12.10.jar:?]
at scala.collection.AbstractIterable.foreach(Iterable.scala:56)
~[scala-library-2.12.10.jar:?]
at
org.apache.celeborn.service.deploy.worker.storage.LocalDeviceMonitor$$anon$1.$anonfun$run$2(DeviceMonitor.scala:136)
~[celeborn-worker_2.12-0.5.0-SNAPSHOT.jar:0.5.0-SNAPSHOT]
at
org.apache.celeborn.service.deploy.worker.storage.LocalDeviceMonitor$$anon$1.$anonfun$run$2$adapted(DeviceMonitor.scala:111)
~[celeborn-worker_2.12-0.5.0-SNAPSHOT.jar:0.5.0-SNAPSHOT]
at scala.collection.Iterator.foreach(Iterator.scala:941)
~[scala-library-2.12.10.jar:?]
at scala.collection.Iterator.foreach$(Iterator.scala:941)
~[scala-library-2.12.10.jar:?]
at scala.collection.AbstractIterator.foreach(Iterator.scala:1429)
~[scala-library-2.12.10.jar:?]
at scala.collection.IterableLike.foreach(IterableLike.scala:74)
~[scala-library-2.12.10.jar:?]
at scala.collection.IterableLike.foreach$(IterableLike.scala:73)
~[scala-library-2.12.10.jar:?]
at scala.collection.AbstractIterable.foreach(Iterable.scala:56)
~[scala-library-2.12.10.jar:?]
at
org.apache.celeborn.service.deploy.worker.storage.LocalDeviceMonitor$$anon$1.run(DeviceMonitor.scala:111)
~[celeborn-worker_2.12-0.5.0-SNAPSHOT.jar:0.5.0-SNAPSHOT]
at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
~[?:1.8.0_162]
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
~[?:1.8.0_162]
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
~[?:1.8.0_162]
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
~[?:1.8.0_162]
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
~[?:1.8.0_162]
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
~[?:1.8.0_162]
at java.lang.Thread.run(Thread.java:748) ~[?:1.8.0_162]
Caused by: java.nio.file.FileSystemException: /mnt/storage01: Input/output
error
at
sun.nio.fs.UnixException.translateToIOException(UnixException.java:91)
~[?:1.8.0_162]
at
sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
~[?:1.8.0_162]
at
sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
~[?:1.8.0_162]
at sun.nio.fs.UnixFileStore.devFor(UnixFileStore.java:57)
~[?:1.8.0_162]
at sun.nio.fs.UnixFileStore.<init>(UnixFileStore.java:64)
~[?:1.8.0_162]
at sun.nio.fs.LinuxFileStore.<init>(LinuxFileStore.java:44)
~[?:1.8.0_162]
at
sun.nio.fs.LinuxFileSystemProvider.getFileStore(LinuxFileSystemProvider.java:51)
~[?:1.8.0_162]
at
sun.nio.fs.LinuxFileSystemProvider.getFileStore(LinuxFileSystemProvider.java:39)
~[?:1.8.0_162]
at
sun.nio.fs.UnixFileSystemProvider.getFileStore(UnixFileSystemProvider.java:368)
~[?:1.8.0_162]
at java.nio.file.Files.getFileStore(Files.java:1461) ~[?:1.8.0_162]
at
org.apache.celeborn.service.deploy.worker.storage.DeviceMonitor$.getDiskUsageInfos(DeviceMonitor.scala:231)
~[celeborn-worker_2.12-0.5.0-SNAPSHOT.jar:0.5.0-SNAPSHOT]
at
org.apache.celeborn.service.deploy.worker.storage.DeviceMonitor$.$anonfun$highDiskUsage$1(DeviceMonitor.scala:248)
~[celeborn-worker_2.12-0.5.0-SNAPSHOT.jar:0.5.0-SNAPSHOT]
at
scala.runtime.java8.JFunction0$mcZ$sp.apply(JFunction0$mcZ$sp.java:23)
~[scala-library-2.12.10.jar:?]
at
org.apache.celeborn.common.util.Utils$$anon$3.call(Utils.scala:943)
~[celeborn-common_2.12-0.5.0-SNAPSHOT.jar:0.5.0-SNAPSHOT]
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
~[?:1.8.0_162]
... 3 more
```
Meanwhile, `StorageManager` should not update space related diskInfo for
input/ouput error of disk.
### Does this PR introduce _any_ user-facing change?
No.
### How was this patch tested?
Cluster test.
Closes #2809 from SteNicholas/CELEBORN-1646.
Authored-by: SteNicholas <[email protected]>
Signed-off-by: mingji <[email protected]>
(cherry picked from commit fbea91fc1990ff18f08aae06aafab952ebf5e17a)
Signed-off-by: mingji <[email protected]>
---
.../deploy/worker/storage/DeviceMonitor.scala | 9 +++-
.../deploy/worker/storage/StorageManager.scala | 62 +++++++++++++---------
2 files changed, 44 insertions(+), 27 deletions(-)
diff --git
a/worker/src/main/scala/org/apache/celeborn/service/deploy/worker/storage/DeviceMonitor.scala
b/worker/src/main/scala/org/apache/celeborn/service/deploy/worker/storage/DeviceMonitor.scala
index 611686fcf..8243f6522 100644
---
a/worker/src/main/scala/org/apache/celeborn/service/deploy/worker/storage/DeviceMonitor.scala
+++
b/worker/src/main/scala/org/apache/celeborn/service/deploy/worker/storage/DeviceMonitor.scala
@@ -86,7 +86,14 @@ class LocalDeviceMonitor(
.groupBy(_.deviceInfo)
.foreach { case (deviceInfo: DeviceInfo, diskInfos: List[DiskInfo]) =>
val deviceLabel = Map("device" -> deviceInfo.name)
- def usage: DeviceMonitor.DiskUsageInfo =
DeviceMonitor.getDiskUsageInfos(diskInfos.head)
+ def usage: DeviceMonitor.DiskUsageInfo =
+ try {
+ DeviceMonitor.getDiskUsageInfos(diskInfos.head)
+ } catch {
+ case t: Throwable =>
+ logError("Device monitor get usage infos failed.", t)
+ DeviceMonitor.DiskUsageInfo(0L, 0L, 0L, 0)
+ }
workerSource.addGauge(WorkerSource.DEVICE_OS_TOTAL_CAPACITY,
deviceLabel) { () =>
usage.totalSpace
}
diff --git
a/worker/src/main/scala/org/apache/celeborn/service/deploy/worker/storage/StorageManager.scala
b/worker/src/main/scala/org/apache/celeborn/service/deploy/worker/storage/StorageManager.scala
index 13bda7b43..4fc65f3c7 100644
---
a/worker/src/main/scala/org/apache/celeborn/service/deploy/worker/storage/StorageManager.scala
+++
b/worker/src/main/scala/org/apache/celeborn/service/deploy/worker/storage/StorageManager.scala
@@ -783,33 +783,43 @@ final private[worker] class StorageManager(conf:
CelebornConf, workerSource: Abs
}
def updateDiskInfos(): Unit = this.synchronized {
- disksSnapshot().filter(_.status != DiskStatus.IO_HANG).foreach { diskInfo
=>
- val totalUsage = diskInfo.dirs.map { dir =>
- val writers = workingDirWriters.get(dir)
- if (writers != null) {
- writers.synchronized {
- writers.values.asScala.map(_.getDiskFileInfo.getFileLength).sum
+ disksSnapshot()
+ .filter(diskInfo =>
+ diskInfo.status != DiskStatus.IO_HANG || diskInfo.status !=
DiskStatus.READ_OR_WRITE_FAILURE)
+ .foreach {
+ diskInfo =>
+ val totalUsage = diskInfo.dirs.map { dir =>
+ val writers = workingDirWriters.get(dir)
+ if (writers != null) {
+ writers.synchronized {
+ writers.values.asScala.map(_.getDiskFileInfo.getFileLength).sum
+ }
+ } else {
+ 0
+ }
+ }.sum
+
+ try {
+ val (fileSystemReportedUsableSpace, fileSystemReportedTotalSpace) =
+ getFileSystemReportedSpace(diskInfo.mountPoint)
+ val workingDirUsableSpace =
+ Math.min(diskInfo.configuredUsableSpace - totalUsage,
fileSystemReportedUsableSpace)
+ val minimumReserveSize =
+ DiskUtils.getMinimumUsableSize(diskInfo, diskReserveSize,
diskReserveRatio)
+ val usableSpace = Math.max(workingDirUsableSpace -
minimumReserveSize, 0)
+ logDebug(
+ s"Update diskInfo:${diskInfo.mountPoint}
workingDirUsableSpace:$workingDirUsableSpace
fileMeta:$fileSystemReportedUsableSpace" +
+ s"conf:${diskInfo.configuredUsableSpace}
totalUsage:$totalUsage totalSpace:$fileSystemReportedTotalSpace" +
+ s"minimumReserveSize:$minimumReserveSize
usableSpace:$usableSpace")
+ diskInfo.setUsableSpace(usableSpace)
+ diskInfo.setTotalSpace(fileSystemReportedTotalSpace)
+ } catch {
+ case t: Throwable =>
+ logError(s"Update diskInfo:${diskInfo.mountPoint} failed.", t)
}
- } else {
- 0
- }
- }.sum
-
- val (fileSystemReportedUsableSpace, fileSystemReportedTotalSpace) =
- getFileSystemReportedSpace(diskInfo.mountPoint)
- val workingDirUsableSpace =
- Math.min(diskInfo.configuredUsableSpace - totalUsage,
fileSystemReportedUsableSpace)
- val minimumReserveSize =
- DiskUtils.getMinimumUsableSize(diskInfo, diskReserveSize,
diskReserveRatio)
- val usableSpace = Math.max(workingDirUsableSpace - minimumReserveSize, 0)
- logDebug(s"updateDiskInfos workingDirUsableSpace:$workingDirUsableSpace
filemeta:$fileSystemReportedUsableSpace" +
- s"conf:${diskInfo.configuredUsableSpace} totalUsage:$totalUsage
totalSpace:$fileSystemReportedTotalSpace" +
- s"minimumReserveSize:$minimumReserveSize usableSpace:$usableSpace")
- diskInfo.setUsableSpace(usableSpace)
- diskInfo.setTotalSpace(fileSystemReportedTotalSpace)
- diskInfo.updateFlushTime()
- diskInfo.updateFetchTime()
- }
+ diskInfo.updateFlushTime()
+ diskInfo.updateFetchTime()
+ }
logInfo(s"Updated diskInfos:\n${disksSnapshot().mkString("\n")}")
}