mirror of
https://github.com/cubefs/cubefs.git
synced 2026-08-02 02:00:56 +00:00
refactor(master): remove useless code. #22890822
eliminate security vulnerabilities in the code. Signed-off-by: Victor1319 <zengxuewei@oppo.com>
This commit is contained in:
parent
6121ffd009
commit
54c357ddc1
@ -183,7 +183,6 @@ func (m *Server) loadMetadata() {
|
||||
if err = m.cluster.loadZoneValue(); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
// autoUpdatedZones = m.cluster.checkSetMediaTypeForLegacyZones()
|
||||
|
||||
if err = m.cluster.loadVols(); err != nil {
|
||||
panic(err)
|
||||
|
||||
@ -1191,39 +1191,6 @@ func (c *Cluster) loadZoneValue() (err error) {
|
||||
return
|
||||
}
|
||||
|
||||
func (c *Cluster) checkSetMediaTypeForLegacyZones() (updatedZones []*Zone) {
|
||||
updatedZones = make([]*Zone, 0)
|
||||
|
||||
zonesHasDatanode := map[string]struct{}{}
|
||||
c.dataNodes.Range(func(addr, node interface{}) bool {
|
||||
dn := node.(*DataNode)
|
||||
zonesHasDatanode[dn.ZoneName] = struct{}{}
|
||||
return true
|
||||
})
|
||||
|
||||
log.LogDebugf("[checkSetMediaTypeForLegacyZones] zone num: %v", c.t.getZoneLen())
|
||||
c.t.zoneMap.Range(func(key, value interface{}) bool {
|
||||
zone := value.(*Zone)
|
||||
|
||||
log.LogDebugf("[checkSetMediaTypeForLegacyZones] zone(%v) mediaType(%v)",
|
||||
zone.name, proto.MediaTypeString(zone.dataMediaType))
|
||||
if zone.dataMediaType != proto.MediaType_Unspecified {
|
||||
return true
|
||||
}
|
||||
|
||||
if _, exists := zonesHasDatanode[zone.name]; exists {
|
||||
zone.SetDataMediaType(c.legacyDataMediaType)
|
||||
log.LogWarnf("[checkSetMediaTypeForLegacyZones] set mediaType(%v) by config LegacyDataMediaType for legacy zone(%v)",
|
||||
proto.MediaTypeString(zone.dataMediaType), zone.name)
|
||||
updatedZones = append(updatedZones, zone)
|
||||
}
|
||||
|
||||
return true
|
||||
})
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
func (c *Cluster) updateMaxConcurrentLcNodes(val uint64) {
|
||||
atomic.StoreUint64(&c.cfg.MaxConcurrentLcNodes, val)
|
||||
}
|
||||
|
||||
@ -280,7 +280,7 @@ func (m *warningMetrics) deleteMissingDp(missingDpAddrSet addrSet, clusterName,
|
||||
log.LogDebugf("action[deleteMissingDp] delete: dpId(%v), addr(%v)", dpId, addr)
|
||||
}
|
||||
|
||||
// leader only
|
||||
// leader only, TODO: remove
|
||||
func (m *warningMetrics) WarnMissingDp(clusterName, addr string, partitionID uint64, report bool) {
|
||||
if clusterName != m.cluster.Name {
|
||||
return
|
||||
|
||||
@ -19,7 +19,6 @@ import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"math"
|
||||
"net/http"
|
||||
"os"
|
||||
@ -80,9 +79,9 @@ func (m *MetaNode) registerAPIHandler() (err error) {
|
||||
http.HandleFunc("/getInodeAccessTime", m.getInodeAccessTimeHandler)
|
||||
// for hybrid cloud debug
|
||||
http.HandleFunc("/getInodeWithExtentKey", m.getInodeWithExtentKeyHandler)
|
||||
http.HandleFunc("/setInodeCreateTime", m.setInodeCreateTimeHandler)
|
||||
http.HandleFunc("/deleteMigrateExtentKey", m.deleteMigrateExtentKeyHandler)
|
||||
http.HandleFunc("/updateExtentKeyAfterMigration", m.updateExtentKeyAfterMigrationHandler)
|
||||
// http.HandleFunc("/setInodeCreateTime", m.setInodeCreateTimeHandler)
|
||||
// http.HandleFunc("/deleteMigrateExtentKey", m.deleteMigrateExtentKeyHandler)
|
||||
// http.HandleFunc("/updateExtentKeyAfterMigration", m.updateExtentKeyAfterMigrationHandler)
|
||||
return
|
||||
}
|
||||
|
||||
@ -1023,229 +1022,230 @@ func (m *MetaNode) getInodeWithExtentKeyHandler(w http.ResponseWriter, r *http.R
|
||||
return
|
||||
}
|
||||
|
||||
func (m *MetaNode) setInodeCreateTimeHandler(w http.ResponseWriter, r *http.Request) {
|
||||
var err error
|
||||
// used for debug api
|
||||
// func (m *MetaNode) setInodeCreateTimeHandler(w http.ResponseWriter, r *http.Request) {
|
||||
// var err error
|
||||
|
||||
r.ParseForm()
|
||||
resp := NewAPIResponse(http.StatusBadRequest, "")
|
||||
defer func() {
|
||||
data, _ := resp.Marshal()
|
||||
if _, err := w.Write(data); err != nil {
|
||||
log.LogErrorf("[setInodeCreateTimeHandler] response %s", err.Error())
|
||||
}
|
||||
}()
|
||||
// r.ParseForm()
|
||||
// resp := NewAPIResponse(http.StatusBadRequest, "")
|
||||
// defer func() {
|
||||
// data, _ := resp.Marshal()
|
||||
// if _, err := w.Write(data); err != nil {
|
||||
// log.LogErrorf("[setInodeCreateTimeHandler] response %s", err.Error())
|
||||
// }
|
||||
// }()
|
||||
|
||||
pid, err := strconv.ParseUint(r.FormValue("pid"), 10, 64)
|
||||
if err != nil {
|
||||
resp.Msg = err.Error()
|
||||
return
|
||||
}
|
||||
// pid, err := strconv.ParseUint(r.FormValue("pid"), 10, 64)
|
||||
// if err != nil {
|
||||
// resp.Msg = err.Error()
|
||||
// return
|
||||
// }
|
||||
|
||||
id, err := strconv.ParseUint(r.FormValue("ino"), 10, 64)
|
||||
if err != nil {
|
||||
resp.Msg = err.Error()
|
||||
return
|
||||
}
|
||||
// id, err := strconv.ParseUint(r.FormValue("ino"), 10, 64)
|
||||
// if err != nil {
|
||||
// resp.Msg = err.Error()
|
||||
// return
|
||||
// }
|
||||
|
||||
dateTimeStr := r.FormValue("createTime")
|
||||
// dateTimeStr := r.FormValue("createTime")
|
||||
|
||||
log.LogInfof("[setInodeCreateTimeHandler] mpId(%v) ino(%v), to set createTime: %v",
|
||||
pid, id, dateTimeStr)
|
||||
// log.LogInfof("[setInodeCreateTimeHandler] mpId(%v) ino(%v), to set createTime: %v",
|
||||
// pid, id, dateTimeStr)
|
||||
|
||||
formatStr := "2006-01-02 15:04:05 -0700 MST"
|
||||
datetime, err := time.Parse(formatStr, dateTimeStr)
|
||||
if err != nil {
|
||||
err = fmt.Errorf("failed to parse createTime: %v", err.Error())
|
||||
resp.Msg = err.Error()
|
||||
return
|
||||
}
|
||||
createTime := datetime.Unix()
|
||||
// formatStr := "2006-01-02 15:04:05 -0700 MST"
|
||||
// datetime, err := time.Parse(formatStr, dateTimeStr)
|
||||
// if err != nil {
|
||||
// err = fmt.Errorf("failed to parse createTime: %v", err.Error())
|
||||
// resp.Msg = err.Error()
|
||||
// return
|
||||
// }
|
||||
// createTime := datetime.Unix()
|
||||
|
||||
mp, err := m.metadataManager.GetPartition(pid)
|
||||
if err != nil {
|
||||
resp.Code = http.StatusNotFound
|
||||
resp.Msg = err.Error()
|
||||
return
|
||||
}
|
||||
// mp, err := m.metadataManager.GetPartition(pid)
|
||||
// if err != nil {
|
||||
// resp.Code = http.StatusNotFound
|
||||
// resp.Msg = err.Error()
|
||||
// return
|
||||
// }
|
||||
|
||||
if leaderAddr, ok := mp.IsLeader(); !ok {
|
||||
resp.Code = http.StatusSeeOther
|
||||
err = fmt.Errorf("not mp leader, leader is %v", leaderAddr)
|
||||
resp.Msg = err.Error()
|
||||
return
|
||||
}
|
||||
// if leaderAddr, ok := mp.IsLeader(); !ok {
|
||||
// resp.Code = http.StatusSeeOther
|
||||
// err = fmt.Errorf("not mp leader, leader is %v", leaderAddr)
|
||||
// resp.Msg = err.Error()
|
||||
// return
|
||||
// }
|
||||
|
||||
req := &SetCreateTimeRequest{
|
||||
Inode: id,
|
||||
CreateTime: createTime,
|
||||
}
|
||||
// req := &SetCreateTimeRequest{
|
||||
// Inode: id,
|
||||
// CreateTime: createTime,
|
||||
// }
|
||||
|
||||
p := &Packet{}
|
||||
err = p.MarshalData(req)
|
||||
if err != nil {
|
||||
resp.Msg = err.Error()
|
||||
return
|
||||
}
|
||||
// p := &Packet{}
|
||||
// err = p.MarshalData(req)
|
||||
// if err != nil {
|
||||
// resp.Msg = err.Error()
|
||||
// return
|
||||
// }
|
||||
|
||||
if err = mp.SetCreateTime(req, p.Data, p); err != nil {
|
||||
log.LogErrorf("[setInodeCreateTimeHandler] req: %v, error: %s", req, err.Error())
|
||||
resp.Msg = err.Error()
|
||||
return
|
||||
}
|
||||
// if err = mp.SetCreateTime(req, p.Data, p); err != nil {
|
||||
// log.LogErrorf("[setInodeCreateTimeHandler] req: %v, error: %s", req, err.Error())
|
||||
// resp.Msg = err.Error()
|
||||
// return
|
||||
// }
|
||||
|
||||
resp.Code = http.StatusOK
|
||||
resp.Msg = p.GetResultMsg()
|
||||
// resp.Code = http.StatusOK
|
||||
// resp.Msg = p.GetResultMsg()
|
||||
|
||||
log.LogInfof("[setInodeCreateTimeHandler] mpId(%v) ino(%v), to set createTime: %v(%v)",
|
||||
pid, id, dateTimeStr, createTime)
|
||||
return
|
||||
}
|
||||
// log.LogInfof("[setInodeCreateTimeHandler] mpId(%v) ino(%v), to set createTime: %v(%v)",
|
||||
// pid, id, dateTimeStr, createTime)
|
||||
// return
|
||||
// }
|
||||
|
||||
func (m *MetaNode) deleteMigrateExtentKeyHandler(w http.ResponseWriter, r *http.Request) {
|
||||
var err error
|
||||
// func (m *MetaNode) deleteMigrateExtentKeyHandler(w http.ResponseWriter, r *http.Request) {
|
||||
// var err error
|
||||
|
||||
r.ParseForm()
|
||||
resp := NewAPIResponse(http.StatusBadRequest, "")
|
||||
defer func() {
|
||||
data, _ := resp.Marshal()
|
||||
if _, err := w.Write(data); err != nil {
|
||||
log.LogErrorf("[deleteMigrateExtentKeyHandler] response %s", err.Error())
|
||||
}
|
||||
}()
|
||||
// r.ParseForm()
|
||||
// resp := NewAPIResponse(http.StatusBadRequest, "")
|
||||
// defer func() {
|
||||
// data, _ := resp.Marshal()
|
||||
// if _, err := w.Write(data); err != nil {
|
||||
// log.LogErrorf("[deleteMigrateExtentKeyHandler] response %s", err.Error())
|
||||
// }
|
||||
// }()
|
||||
|
||||
mpId, err := strconv.ParseUint(r.FormValue("pid"), 10, 64)
|
||||
if err != nil {
|
||||
resp.Msg = err.Error()
|
||||
return
|
||||
}
|
||||
// mpId, err := strconv.ParseUint(r.FormValue("pid"), 10, 64)
|
||||
// if err != nil {
|
||||
// resp.Msg = err.Error()
|
||||
// return
|
||||
// }
|
||||
|
||||
inoId, err := strconv.ParseUint(r.FormValue("ino"), 10, 64)
|
||||
if err != nil {
|
||||
resp.Msg = err.Error()
|
||||
return
|
||||
}
|
||||
// inoId, err := strconv.ParseUint(r.FormValue("ino"), 10, 64)
|
||||
// if err != nil {
|
||||
// resp.Msg = err.Error()
|
||||
// return
|
||||
// }
|
||||
|
||||
log.LogInfof("[deleteMigrateExtentKeyHandler] mpId(%v) ino(%v) run", mpId, inoId)
|
||||
// log.LogInfof("[deleteMigrateExtentKeyHandler] mpId(%v) ino(%v) run", mpId, inoId)
|
||||
|
||||
mp, err := m.metadataManager.GetPartition(mpId)
|
||||
if err != nil {
|
||||
log.LogErrorf("[deleteMigrateExtentKeyHandler] mpId(%v) ino(%v), get mp err: %v", mpId, inoId, err.Error())
|
||||
resp.Code = http.StatusNotFound
|
||||
resp.Msg = err.Error()
|
||||
return
|
||||
}
|
||||
// mp, err := m.metadataManager.GetPartition(mpId)
|
||||
// if err != nil {
|
||||
// log.LogErrorf("[deleteMigrateExtentKeyHandler] mpId(%v) ino(%v), get mp err: %v", mpId, inoId, err.Error())
|
||||
// resp.Code = http.StatusNotFound
|
||||
// resp.Msg = err.Error()
|
||||
// return
|
||||
// }
|
||||
|
||||
if leaderAddr, ok := mp.IsLeader(); !ok {
|
||||
resp.Code = http.StatusSeeOther
|
||||
err = fmt.Errorf("not mp leader, leader is %v", leaderAddr)
|
||||
log.LogErrorf("[deleteMigrateExtentKeyHandler] mpId(%v) ino(%v), err: %v", mpId, inoId, err.Error())
|
||||
resp.Msg = err.Error()
|
||||
return
|
||||
}
|
||||
// if leaderAddr, ok := mp.IsLeader(); !ok {
|
||||
// resp.Code = http.StatusSeeOther
|
||||
// err = fmt.Errorf("not mp leader, leader is %v", leaderAddr)
|
||||
// log.LogErrorf("[deleteMigrateExtentKeyHandler] mpId(%v) ino(%v), err: %v", mpId, inoId, err.Error())
|
||||
// resp.Msg = err.Error()
|
||||
// return
|
||||
// }
|
||||
|
||||
req := &DeleteMigrationExtentKeyRequest{
|
||||
PartitionID: mpId,
|
||||
Inode: inoId,
|
||||
}
|
||||
// req := &DeleteMigrationExtentKeyRequest{
|
||||
// PartitionID: mpId,
|
||||
// Inode: inoId,
|
||||
// }
|
||||
|
||||
p := &Packet{}
|
||||
p.Opcode = proto.OpDeleteMigrationExtentKey
|
||||
req.FullPaths = []string{"N/A"}
|
||||
err = p.MarshalData(req)
|
||||
if err != nil {
|
||||
resp.Msg = err.Error()
|
||||
return
|
||||
}
|
||||
// p := &Packet{}
|
||||
// p.Opcode = proto.OpDeleteMigrationExtentKey
|
||||
// req.FullPaths = []string{"N/A"}
|
||||
// err = p.MarshalData(req)
|
||||
// if err != nil {
|
||||
// resp.Msg = err.Error()
|
||||
// return
|
||||
// }
|
||||
|
||||
remoteInfo := "httpFrom" + r.RemoteAddr
|
||||
if err = mp.DeleteMigrationExtentKey(req, p, remoteInfo); err != nil {
|
||||
log.LogErrorf("[deleteMigrateExtentKeyHandler] req: %v, error: %s", req, err.Error())
|
||||
resp.Msg = err.Error()
|
||||
return
|
||||
}
|
||||
// remoteInfo := "httpFrom" + r.RemoteAddr
|
||||
// if err = mp.DeleteMigrationExtentKey(req, p, remoteInfo); err != nil {
|
||||
// log.LogErrorf("[deleteMigrateExtentKeyHandler] req: %v, error: %s", req, err.Error())
|
||||
// resp.Msg = err.Error()
|
||||
// return
|
||||
// }
|
||||
|
||||
resp.Code = http.StatusOK
|
||||
resp.Msg = p.GetResultMsg()
|
||||
// resp.Code = http.StatusOK
|
||||
// resp.Msg = p.GetResultMsg()
|
||||
|
||||
log.LogInfof("[deleteMigrateExtentKeyHandler] mpId(%v) ino(%v) success", mpId, inoId)
|
||||
return
|
||||
}
|
||||
// log.LogInfof("[deleteMigrateExtentKeyHandler] mpId(%v) ino(%v) success", mpId, inoId)
|
||||
// return
|
||||
// }
|
||||
|
||||
func (m *MetaNode) updateExtentKeyAfterMigrationHandler(w http.ResponseWriter, r *http.Request) {
|
||||
var err error
|
||||
var bytes []byte
|
||||
// func (m *MetaNode) updateExtentKeyAfterMigrationHandler(w http.ResponseWriter, r *http.Request) {
|
||||
// var err error
|
||||
// var bytes []byte
|
||||
|
||||
resp := NewAPIResponse(http.StatusBadRequest, "")
|
||||
defer func() {
|
||||
data, _ := resp.Marshal()
|
||||
if _, err := w.Write(data); err != nil {
|
||||
log.LogErrorf("[updateExtentKeyAfterMigrationHandler] response %s", err.Error())
|
||||
}
|
||||
}()
|
||||
// resp := NewAPIResponse(http.StatusBadRequest, "")
|
||||
// defer func() {
|
||||
// data, _ := resp.Marshal()
|
||||
// if _, err := w.Write(data); err != nil {
|
||||
// log.LogErrorf("[updateExtentKeyAfterMigrationHandler] response %s", err.Error())
|
||||
// }
|
||||
// }()
|
||||
|
||||
if bytes, err = ioutil.ReadAll(r.Body); err != nil {
|
||||
resp.Code = http.StatusBadRequest
|
||||
resp.Msg = err.Error()
|
||||
log.LogErrorf("[updateExtentKeyAfterMigrationHandler] read request data body err:%s", err)
|
||||
return
|
||||
}
|
||||
req := &proto.UpdateExtentKeyAfterMigrationRequest{}
|
||||
if err = json.Unmarshal(bytes, req); err != nil {
|
||||
resp.Code = http.StatusBadRequest
|
||||
resp.Msg = err.Error()
|
||||
log.LogErrorf("[updateExtentKeyAfterMigrationHandler] Unmarshal request data body err:%s", err)
|
||||
return
|
||||
}
|
||||
log.LogInfof("[updateExtentKeyAfterMigrationHandler] req: %v", req)
|
||||
// if bytes, err = ioutil.ReadAll(r.Body); err != nil {
|
||||
// resp.Code = http.StatusBadRequest
|
||||
// resp.Msg = err.Error()
|
||||
// log.LogErrorf("[updateExtentKeyAfterMigrationHandler] read request data body err:%s", err)
|
||||
// return
|
||||
// }
|
||||
// req := &proto.UpdateExtentKeyAfterMigrationRequest{}
|
||||
// if err = json.Unmarshal(bytes, req); err != nil {
|
||||
// resp.Code = http.StatusBadRequest
|
||||
// resp.Msg = err.Error()
|
||||
// log.LogErrorf("[updateExtentKeyAfterMigrationHandler] Unmarshal request data body err:%s", err)
|
||||
// return
|
||||
// }
|
||||
// log.LogInfof("[updateExtentKeyAfterMigrationHandler] req: %v", req)
|
||||
|
||||
mp, err := m.metadataManager.GetPartition(req.PartitionID)
|
||||
if err != nil {
|
||||
log.LogErrorf("[updateExtentKeyAfterMigrationHandler] mpId(%v) ino(%v), get mp err: %v",
|
||||
req.PartitionID, req.Inode, err.Error())
|
||||
resp.Code = http.StatusNotFound
|
||||
resp.Msg = err.Error()
|
||||
return
|
||||
}
|
||||
// mp, err := m.metadataManager.GetPartition(req.PartitionID)
|
||||
// if err != nil {
|
||||
// log.LogErrorf("[updateExtentKeyAfterMigrationHandler] mpId(%v) ino(%v), get mp err: %v",
|
||||
// req.PartitionID, req.Inode, err.Error())
|
||||
// resp.Code = http.StatusNotFound
|
||||
// resp.Msg = err.Error()
|
||||
// return
|
||||
// }
|
||||
|
||||
leaderAddr, isLeader := mp.IsLeader()
|
||||
if leaderAddr == "" {
|
||||
resp.Code = http.StatusSeeOther
|
||||
err = fmt.Errorf("mp(%v) no leader", req.PartitionID)
|
||||
log.LogErrorf("[updateExtentKeyAfterMigrationHandler] mpId(%v) ino(%v) err: %v",
|
||||
req.PartitionID, req.Inode, err.Error())
|
||||
resp.Msg = err.Error()
|
||||
return
|
||||
} else if !isLeader {
|
||||
resp.Code = http.StatusSeeOther
|
||||
err = fmt.Errorf("not leader, mp(%v) leader is %v", req.PartitionID, leaderAddr)
|
||||
log.LogErrorf("[updateExtentKeyAfterMigrationHandler] mpId(%v) ino(%v) err: %v",
|
||||
req.PartitionID, req.Inode, err.Error())
|
||||
resp.Msg = err.Error()
|
||||
return
|
||||
}
|
||||
// leaderAddr, isLeader := mp.IsLeader()
|
||||
// if leaderAddr == "" {
|
||||
// resp.Code = http.StatusSeeOther
|
||||
// err = fmt.Errorf("mp(%v) no leader", req.PartitionID)
|
||||
// log.LogErrorf("[updateExtentKeyAfterMigrationHandler] mpId(%v) ino(%v) err: %v",
|
||||
// req.PartitionID, req.Inode, err.Error())
|
||||
// resp.Msg = err.Error()
|
||||
// return
|
||||
// } else if !isLeader {
|
||||
// resp.Code = http.StatusSeeOther
|
||||
// err = fmt.Errorf("not leader, mp(%v) leader is %v", req.PartitionID, leaderAddr)
|
||||
// log.LogErrorf("[updateExtentKeyAfterMigrationHandler] mpId(%v) ino(%v) err: %v",
|
||||
// req.PartitionID, req.Inode, err.Error())
|
||||
// resp.Msg = err.Error()
|
||||
// return
|
||||
// }
|
||||
|
||||
p := &Packet{}
|
||||
p.Opcode = proto.OpMetaUpdateExtentKeyAfterMigration
|
||||
req.FullPaths = []string{"N/A"}
|
||||
err = p.MarshalData(req)
|
||||
if err != nil {
|
||||
log.LogErrorf("[updateExtentKeyAfterMigrationHandler] mpId(%v) ino(%v) MarshalData err: %v",
|
||||
req.PartitionID, req.Inode, err.Error())
|
||||
resp.Code = http.StatusSeeOther
|
||||
resp.Msg = "inner error"
|
||||
return
|
||||
}
|
||||
// p := &Packet{}
|
||||
// p.Opcode = proto.OpMetaUpdateExtentKeyAfterMigration
|
||||
// req.FullPaths = []string{"N/A"}
|
||||
// err = p.MarshalData(req)
|
||||
// if err != nil {
|
||||
// log.LogErrorf("[updateExtentKeyAfterMigrationHandler] mpId(%v) ino(%v) MarshalData err: %v",
|
||||
// req.PartitionID, req.Inode, err.Error())
|
||||
// resp.Code = http.StatusSeeOther
|
||||
// resp.Msg = "inner error"
|
||||
// return
|
||||
// }
|
||||
|
||||
remoteInfo := "httpFrom" + r.RemoteAddr
|
||||
if err = mp.UpdateExtentKeyAfterMigration(req, p, remoteInfo); err != nil {
|
||||
log.LogErrorf("[updateExtentKeyAfterMigrationHandler] req: %v, error: %s", req, err.Error())
|
||||
resp.Msg = err.Error()
|
||||
return
|
||||
}
|
||||
// remoteInfo := "httpFrom" + r.RemoteAddr
|
||||
// if err = mp.UpdateExtentKeyAfterMigration(req, p, remoteInfo); err != nil {
|
||||
// log.LogErrorf("[updateExtentKeyAfterMigrationHandler] req: %v, error: %s", req, err.Error())
|
||||
// resp.Msg = err.Error()
|
||||
// return
|
||||
// }
|
||||
|
||||
resp.Code = http.StatusOK
|
||||
resp.Msg = p.GetResultMsg()
|
||||
// resp.Code = http.StatusOK
|
||||
// resp.Msg = p.GetResultMsg()
|
||||
|
||||
log.LogInfof("[updateExtentKeyAfterMigrationHandler] mpId(%v) ino(%v) success", req.PartitionID, req.Inode)
|
||||
return
|
||||
}
|
||||
// log.LogInfof("[updateExtentKeyAfterMigrationHandler] mpId(%v) ino(%v) success", req.PartitionID, req.Inode)
|
||||
// return
|
||||
// }
|
||||
|
||||
@ -200,7 +200,6 @@ const (
|
||||
opFSMSentToChanWithVer = 76
|
||||
|
||||
// hybrid cloud
|
||||
opFSMInternalFreeForbiddenMigrationInode = 85
|
||||
opFSMForbiddenMigrationInode = 86
|
||||
opFSMRenewalForbiddenMigration = 87
|
||||
opFSMUpdateExtentKeyAfterMigration = 88
|
||||
|
||||
@ -948,22 +948,21 @@ func (i *Inode) MarshalValue() (val []byte) {
|
||||
|
||||
i.RLock()
|
||||
i.MarshalInodeValue(buff)
|
||||
if i.getLayerLen() > 0 || i.getVer() > 0 {
|
||||
// TODO:tangjingyu log for debug only
|
||||
log.LogWarnf("##### [MarshalValue] verCnt(%v) verSeq(%v) inode[%v] stack(%v)",
|
||||
i.getLayerLen(), i.getVer(), i, string(debug.Stack()))
|
||||
}
|
||||
|
||||
if i.getLayerLen() > 0 && i.getVer() == 0 {
|
||||
log.LogFatalf("#### [MarshalValue] inode %v current verSeq %v, hist len (%v) stack(%v)",
|
||||
i.Inode, i.getVer(), i.getLayerLen(), string(debug.Stack()))
|
||||
}
|
||||
if err = binary.Write(buff, binary.BigEndian, int32(i.getLayerLen())); err != nil {
|
||||
i.RUnlock()
|
||||
panic(err)
|
||||
}
|
||||
|
||||
if i.multiSnap != nil {
|
||||
if i.getLayerLen() > 0 || i.getVer() > 0 {
|
||||
// TODO:tangjingyu log for debug only
|
||||
log.LogWarnf("##### [MarshalValue] verCnt(%v) verSeq(%v) inode[%v] stack(%v)",
|
||||
i.getLayerLen(), i.getVer(), i, string(debug.Stack()))
|
||||
}
|
||||
if i.getLayerLen() > 0 && i.getVer() == 0 {
|
||||
log.LogFatalf("#### [MarshalValue] inode %v current verSeq %v, hist len (%v) stack(%v)",
|
||||
i.Inode, i.getVer(), i.getLayerLen(), string(debug.Stack()))
|
||||
}
|
||||
if err = binary.Write(buff, binary.BigEndian, int32(i.getLayerLen())); err != nil {
|
||||
i.RUnlock()
|
||||
panic(err)
|
||||
}
|
||||
for idx, ino := range i.multiSnap.multiVersions {
|
||||
// TODO:tangjingyu log for debug only
|
||||
log.LogWarnf("##### [MarshalValue] handle multiVersions idx(%v) inode[%v] ", idx, i)
|
||||
@ -2257,10 +2256,6 @@ func (i *Inode) NeedDeleteMigrationExtentKey() bool {
|
||||
func (i *Inode) ShouldDelete() (ok bool) {
|
||||
i.RLock()
|
||||
ok = i.Flag&DeleteMarkFlag == DeleteMarkFlag
|
||||
|
||||
// TODO:tangjingyu: need this?
|
||||
// i.NLink == 0 && time.Now().Unix()-i.AccessTime InodeNLink0DelayDeleteSeconds
|
||||
|
||||
i.RUnlock()
|
||||
return
|
||||
}
|
||||
|
||||
@ -1292,7 +1292,7 @@ func (m *metadataManager) opMetaExtentAddWithCheck(conn net.Conn, p *Packet,
|
||||
if err != nil {
|
||||
p.PacketErrorWithBody(proto.OpErr, ([]byte)(err.Error()))
|
||||
m.respondToClientWithVer(conn, p)
|
||||
err = errors.NewErrorf("[%vhun] req: %v, resp: %v", p.GetOpMsgWithReqAndResult(), req, err.Error())
|
||||
err = errors.NewErrorf("[%v] req: %v, resp: %v", p.GetOpMsgWithReqAndResult(), req, err.Error())
|
||||
return
|
||||
}
|
||||
if !m.serveProxy(conn, mp, p) {
|
||||
@ -2970,7 +2970,7 @@ func (m *metadataManager) opMetaUpdateExtentKeyAfterMigration(conn net.Conn, p *
|
||||
err = errors.NewErrorf("[%v],req[%v],err[%v]", p.GetOpMsgWithReqAndResult(), req, string(p.Data))
|
||||
return
|
||||
}
|
||||
mp.UpdateExtentKeyAfterMigration(req, p, remoteAddr)
|
||||
err = mp.UpdateExtentKeyAfterMigration(req, p, remoteAddr)
|
||||
m.updatePackRspSeq(mp, p)
|
||||
m.respondToClientWithVer(conn, p)
|
||||
log.LogDebugf("%s [opMetaUpdateExtentKeyAfterMigration] req: %d - %v, resp body: %v, "+
|
||||
@ -3002,7 +3002,7 @@ func (m *metadataManager) opDeleteMigrationExtentKey(conn net.Conn, p *Packet,
|
||||
err = errors.NewErrorf("[%v],req[%v],err[%v]", p.GetOpMsgWithReqAndResult(), req, string(p.Data))
|
||||
return
|
||||
}
|
||||
mp.DeleteMigrationExtentKey(req, p, remoteAddr)
|
||||
err = mp.DeleteMigrationExtentKey(req, p, remoteAddr)
|
||||
m.updatePackRspSeq(mp, p)
|
||||
m.respondToClientWithVer(conn, p)
|
||||
log.LogDebugf("%s [opDeleteMigrationExtentKey] req: %d - %v, resp body: %v, "+
|
||||
|
||||
@ -64,7 +64,6 @@ func (mp *metaPartition) startFreeList() (err error) {
|
||||
return
|
||||
}
|
||||
|
||||
// go mp.updateVolWorker()
|
||||
go mp.deleteWorker()
|
||||
go mp.startRecycleInodeDelFile()
|
||||
mp.startToDeleteExtents()
|
||||
@ -872,12 +871,3 @@ func (mp *metaPartition) persistDeletedInodes(inos []uint64) {
|
||||
mp.persistDeletedInode(ino, &currSize)
|
||||
}
|
||||
}
|
||||
|
||||
func (mp *metaPartition) syncToRaftFollowersFreeForbiddenMigrationInode(hasDeleteInodes []byte) (err error) {
|
||||
if len(hasDeleteInodes) == 0 {
|
||||
return
|
||||
}
|
||||
_, err = mp.submit(opFSMInternalFreeForbiddenMigrationInode, hasDeleteInodes)
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
@ -660,6 +660,12 @@ func (mp *metaPartition) BatchExtentAppend(req *proto.AppendExtentKeysRequest, p
|
||||
log.LogErrorf("BatchExtentAppend fail err [%v]", err)
|
||||
return
|
||||
}
|
||||
|
||||
// maybe from old version
|
||||
if req.StorageClass == proto.MediaType_Unspecified {
|
||||
req.StorageClass = ino.StorageClass
|
||||
}
|
||||
|
||||
ino.StorageClass = req.StorageClass
|
||||
if !proto.IsStorageClassReplica(ino.StorageClass) {
|
||||
err = fmt.Errorf("ino %v storage type %v donot support BatchExtentAppend", ino.Inode, ino.StorageClass)
|
||||
|
||||
@ -1077,8 +1077,6 @@ func (v *Volume) WritePart(path string, multipartId string, partId uint16, reade
|
||||
}
|
||||
} else {
|
||||
// Write data to data node
|
||||
log.LogErrorf("chihe: streamWrite volume(%v) inode(%v)StorageClass (%v)",
|
||||
v.name, tempInodeInfo.Inode, tempInodeInfo.StorageClass)
|
||||
if size, err = v.streamWrite(tempInodeInfo.Inode, reader, md5Hash, tempInodeInfo.StorageClass); err != nil {
|
||||
log.LogErrorf("WritePart: stream write fail: volume(%v) inode(%v) multipartID(%v) partID(%v) err(%v)",
|
||||
v.name, tempInodeInfo.Inode, multipartId, partId, err)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user