Skip to content

Commit 77f7683

Browse files
committed
Acquire LD_LIBRARY_PATH from Mesos Agent attribute and push to executor
1 parent f8fc66e commit 77f7683

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

core/scheduler.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ import (
4343
"github.com/AliceO2Group/Control/core/task"
4444
"github.com/AliceO2Group/Control/core/task/constraint"
4545
"github.com/AliceO2Group/Control/executor/protos"
46+
"github.com/gogo/protobuf/proto"
4647
"github.com/mesos/mesos-go/api/v1/lib"
4748
"github.com/mesos/mesos-go/api/v1/lib/backoff"
4849
xmetrics "github.com/mesos/mesos-go/api/v1/lib/extras/metrics"
@@ -606,6 +607,19 @@ func resourceOffers(state *internalState, fidStore store.Singleton) events.Handl
606607
Data: jsonCommand, // this ends up in LAUNCH for the executor
607608
}
608609

610+
// We must run the executor with a special LD_LIBRARY_PATH because
611+
// its InfoLogger binding is built with GCC-Toolchain
612+
ldLibPath, ok := agentForCache.Attributes.Get("executor_env_LD_LIBRARY_PATH")
613+
mesosTaskInfo.Executor.Command.Environment = &mesos.Environment{}
614+
if ok {
615+
mesosTaskInfo.Executor.Command.Environment.Variables =
616+
append(mesosTaskInfo.Executor.Command.Environment.Variables,
617+
mesos.Environment_Variable{
618+
Name: "LD_LIBRARY_PATH",
619+
Value: proto.String(ldLibPath),
620+
})
621+
}
622+
609623
log.WithPrefix("scheduler").
610624
WithFields(logrus.Fields{
611625
"taskId": newTaskId,

0 commit comments

Comments
 (0)