aboutsummaryrefslogtreecommitdiff
path: root/weed
diff options
context:
space:
mode:
Diffstat (limited to 'weed')
-rw-r--r--weed/server/volume_grpc_erasure_coding.go2
-rw-r--r--weed/server/volume_server_handlers_ui.go11
-rw-r--r--weed/storage/erasure_coding/ec_volume.go19
3 files changed, 21 insertions, 11 deletions
diff --git a/weed/server/volume_grpc_erasure_coding.go b/weed/server/volume_grpc_erasure_coding.go
index 5981c5efe..88e94115d 100644
--- a/weed/server/volume_grpc_erasure_coding.go
+++ b/weed/server/volume_grpc_erasure_coding.go
@@ -492,7 +492,7 @@ func (vs *VolumeServer) VolumeEcShardsInfo(ctx context.Context, req *volume_serv
for _, shardDetail := range shardDetails {
ecShardInfo := &volume_server_pb.EcShardInfo{
ShardId: uint32(shardDetail.ShardId),
- Size: shardDetail.Size,
+ Size: int64(shardDetail.Size),
Collection: v.Collection,
}
ecShardInfos = append(ecShardInfos, ecShardInfo)
diff --git a/weed/server/volume_server_handlers_ui.go b/weed/server/volume_server_handlers_ui.go
index b1ff0317f..5679eb483 100644
--- a/weed/server/volume_server_handlers_ui.go
+++ b/weed/server/volume_server_handlers_ui.go
@@ -1,12 +1,14 @@
package weed_server
import (
- "github.com/seaweedfs/seaweedfs/weed/pb"
- "github.com/seaweedfs/seaweedfs/weed/util/version"
"net/http"
"path/filepath"
"time"
+ "github.com/seaweedfs/seaweedfs/weed/glog"
+ "github.com/seaweedfs/seaweedfs/weed/pb"
+ "github.com/seaweedfs/seaweedfs/weed/util/version"
+
"github.com/seaweedfs/seaweedfs/weed/pb/volume_server_pb"
ui "github.com/seaweedfs/seaweedfs/weed/server/volume_server_ui"
"github.com/seaweedfs/seaweedfs/weed/stats"
@@ -53,5 +55,8 @@ func (vs *VolumeServer) uiStatusHandler(w http.ResponseWriter, r *http.Request)
infos,
serverStats,
}
- ui.StatusTpl.Execute(w, args)
+ if err := ui.StatusTpl.Execute(w, args); err != nil {
+ glog.Errorf("template execution error: %v", err)
+ http.Error(w, "Internal server error", http.StatusInternalServerError)
+ }
}
diff --git a/weed/storage/erasure_coding/ec_volume.go b/weed/storage/erasure_coding/ec_volume.go
index 61057674f..839428e7b 100644
--- a/weed/storage/erasure_coding/ec_volume.go
+++ b/weed/storage/erasure_coding/ec_volume.go
@@ -178,9 +178,11 @@ func (ev *EcVolume) ShardSize() uint64 {
return 0
}
-func (ev *EcVolume) Size() (size int64) {
+func (ev *EcVolume) Size() (size uint64) {
for _, shard := range ev.Shards {
- size += shard.Size()
+ if shardSize := shard.Size(); shardSize > 0 {
+ size += uint64(shardSize)
+ }
}
return
}
@@ -198,15 +200,18 @@ func (ev *EcVolume) ShardIdList() (shardIds []ShardId) {
type ShardInfo struct {
ShardId ShardId
- Size int64
+ Size uint64
}
func (ev *EcVolume) ShardDetails() (shards []ShardInfo) {
for _, s := range ev.Shards {
- shards = append(shards, ShardInfo{
- ShardId: s.ShardId,
- Size: s.Size(),
- })
+ shardSize := s.Size()
+ if shardSize >= 0 {
+ shards = append(shards, ShardInfo{
+ ShardId: s.ShardId,
+ Size: uint64(shardSize),
+ })
+ }
}
return
}