mirror of
https://github.com/minio/minio.git
synced 2025-07-08 16:42:17 -04:00
parent
b35b537e3f
commit
a4f6705874
@ -45,7 +45,7 @@ func getLocalServerProperty(endpointServerPools EndpointServerPools, r *http.Req
|
|||||||
}
|
}
|
||||||
_, present := network[nodeName]
|
_, present := network[nodeName]
|
||||||
if !present {
|
if !present {
|
||||||
if err := IsServerResolvable(endpoint); err == nil {
|
if err := isServerResolvable(endpoint); err == nil {
|
||||||
network[nodeName] = "online"
|
network[nodeName] = "online"
|
||||||
} else {
|
} else {
|
||||||
network[nodeName] = "offline"
|
network[nodeName] = "offline"
|
||||||
|
@ -192,6 +192,8 @@ var (
|
|||||||
|
|
||||||
globalEndpoints EndpointServerPools
|
globalEndpoints EndpointServerPools
|
||||||
|
|
||||||
|
globalRemoteEndpoints map[string]Endpoint
|
||||||
|
|
||||||
// Global server's network statistics
|
// Global server's network statistics
|
||||||
globalConnStats = newConnStats()
|
globalConnStats = newConnStats()
|
||||||
|
|
||||||
|
@ -228,6 +228,11 @@ func (l *localLocker) Expired(ctx context.Context, args dsync.LockArgs) (expired
|
|||||||
// Check whether uid is still active
|
// Check whether uid is still active
|
||||||
for _, entry := range lri {
|
for _, entry := range lri {
|
||||||
if entry.UID == args.UID && entry.Owner == args.Owner {
|
if entry.UID == args.UID && entry.Owner == args.Owner {
|
||||||
|
if ep, ok := globalRemoteEndpoints[args.Owner]; ok {
|
||||||
|
if err = isServerResolvable(ep); err != nil {
|
||||||
|
return true, nil
|
||||||
|
}
|
||||||
|
}
|
||||||
return false, nil
|
return false, nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -163,9 +163,9 @@ func formatErasureCleanupTmpLocalEndpoints(endpoints Endpoints) error {
|
|||||||
// https://github.com/minio/minio/issues/5667
|
// https://github.com/minio/minio/issues/5667
|
||||||
var errErasureV3ThisEmpty = fmt.Errorf("Erasure format version 3 has This field empty")
|
var errErasureV3ThisEmpty = fmt.Errorf("Erasure format version 3 has This field empty")
|
||||||
|
|
||||||
// IsServerResolvable - checks if the endpoint is resolvable
|
// isServerResolvable - checks if the endpoint is resolvable
|
||||||
// by sending a naked HTTP request with liveness checks.
|
// by sending a naked HTTP request with liveness checks.
|
||||||
func IsServerResolvable(endpoint Endpoint) error {
|
func isServerResolvable(endpoint Endpoint) error {
|
||||||
serverURL := &url.URL{
|
serverURL := &url.URL{
|
||||||
Scheme: endpoint.Scheme,
|
Scheme: endpoint.Scheme,
|
||||||
Host: endpoint.Host,
|
Host: endpoint.Host,
|
||||||
@ -244,7 +244,7 @@ func connectLoadInitFormats(retryCount int, firstDisk bool, endpoints Endpoints,
|
|||||||
return nil, nil, fmt.Errorf("Disk %s: %w", endpoints[i], err)
|
return nil, nil, fmt.Errorf("Disk %s: %w", endpoints[i], err)
|
||||||
}
|
}
|
||||||
if retryCount >= 5 {
|
if retryCount >= 5 {
|
||||||
logger.Info("Unable to connect to %s: %v\n", endpoints[i], IsServerResolvable(endpoints[i]))
|
logger.Info("Unable to connect to %s: %v\n", endpoints[i], isServerResolvable(endpoints[i]))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -139,6 +139,16 @@ func serverHandleCmdArgs(ctx *cli.Context) {
|
|||||||
|
|
||||||
globalMinioHost, globalMinioPort = mustSplitHostPort(globalMinioAddr)
|
globalMinioHost, globalMinioPort = mustSplitHostPort(globalMinioAddr)
|
||||||
globalEndpoints, setupType, err = createServerEndpoints(globalCLIContext.Addr, serverCmdArgs(ctx)...)
|
globalEndpoints, setupType, err = createServerEndpoints(globalCLIContext.Addr, serverCmdArgs(ctx)...)
|
||||||
|
|
||||||
|
globalRemoteEndpoints = make(map[string]Endpoint)
|
||||||
|
for _, z := range globalEndpoints {
|
||||||
|
for _, ep := range z.Endpoints {
|
||||||
|
if ep.IsLocal {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
globalRemoteEndpoints[ep.Host] = ep
|
||||||
|
}
|
||||||
|
}
|
||||||
logger.FatalIf(err, "Invalid command line arguments")
|
logger.FatalIf(err, "Invalid command line arguments")
|
||||||
|
|
||||||
// allow transport to be HTTP/1.1 for proxying.
|
// allow transport to be HTTP/1.1 for proxying.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user