---
# System prepended metadata

title: Problemi scheduling
tags: [Scheduler]

---

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