---
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;
```

--------------

### 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**

**pkg/graph/graph.go**

**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`