--- tags: Scheduler --- # Problemi scheduling Tutti i problemi si presentano durante la build del progetto. Uno minore legato allo scheduler stesso, gli altri all'implementazione di firmament/flowlessly 1) *problema*: la versione di "scheduling-validation" è vecchia e ci sono incompatibilità con le struct di config *soluzione*: ```go go env -w GOPRIVATE=github.com/liqotech go get -u github.com/liqotech/scheduling-validation go env -w GOPRIVATE= ``` 2) *problema*: le istruzioni per installare gtest nel cmake non funzionano *soluzione*: rimuovere le istruzione per installare gtest e gmok dal cmake ```bash sudo apt-get install libgtest-dev cd /usr/src/googletest/googletest sudo mkdir build cd build sudo cmake .. sudo make sudo cp libgtest* /usr/lib/ cd .. sudo rm -rf build sudo mkdir /usr/local/lib/googletest sudo ln -s /usr/lib/libgtest.a /usr/local/lib/googletest/libgtest.a sudo ln -s /usr/lib/libgtest_main.a /usr/local/lib/googletest/libgtest_main.a ``` 3) *problema*: le funzioni di flowfinder sembrano venire prese da un file sbagliato (`flowlesslywrapper.h` invece che `flowlessly.h`) *soluzione*:??? ```bash scheduling/pkg/scheduler/algorithmFirmament/flowless | |_custom_c_files | | | |_src | | | |_flowlessly.cpp | |_flowlessly.h <---- OK | |_flowlesslywrapper | |_flowlesslywrapper.h <---- NO ``` ## NUOVI PROBLEMI ### flowlessly l'eccezione viene lanciata da ``` flowlessly::FastCostScaling::PushFlow (this=0x5e9f80, this=0x5e9f80, src_supply=<synthetic pointer>, flow=<optimized out>, cur_arc=0x5eaf10) at /home/luca/scheduling/pkg/scheduler/algorithmFirmament/flowlessly/Flowlessly/src/solvers/fast_cost_scaling.h:91 91 cur_arc->reverse_arc->residual_cap += flow; ``` ![](https://i.imgur.com/KTx15ou.png) -------------- ![](https://i.imgur.com/qGta81v.png) ### scheduler ``` $ go build -o scheduler cmd/scheduler/main.go # github.com/liqotech/scheduling/pkg/scheduler pkg/scheduler/schedulingManager.go:84:12: m.fedGraph.SetInitialResources undefined (type "github.com/liqotech/scheduling/pkg/graph".Graph has no field or method SetInitialResources) ``` **pkg/scheduler/schedulingManager.go** ![](https://i.imgur.com/FFNvR9X.png) **pkg/graph/graph.go** ![](https://i.imgur.com/VRghSuU.png) **Problema**: Non sembra essere un problema di import visto che in `graph.go` anche nell'ultima release non è presente questa funzione **Tentativo**: Ho provato a commentare la funzione e (finalmente) builda. Lancia una panic su un'altra parte del codice dicendo che una map non viene inizializzata prima di essere utilizzata. E' come se la funzione `InitMetrics` non istanzi la variabile `meterSingleton`