jump-dev / KNITRO.jl

A Julia interface to the Artelys Knitro solver
https://www.artelys.com/knitro
Other
77 stars 23 forks source link

Calling KNITRO in for loop #251

Closed DarioSlaifsteinSk closed 1 year ago

DarioSlaifsteinSk commented 1 year ago

Hi, I'm calling KNITRO inside a for loop to implement a rolling horizon optimal control problem. The problem is that after the 2nd call the solver seems to poison itself or something like that. My MWE draft is something like this:

using InfiniteOpt, JuMP, KNITRO

function solvePolicies(optimizer, # model optimizer
    sets::modelSettings, # number of EVs, discrete time supports, etc.
    data::Dict, # information for the model (mainly parameters), these are the devices (EV, BESS, PV, etc.), the costs (interests, capex, etc) and the revenues
    )
    # Sets
    tend=sets.dTime[end]
    t0=sets.dTime[1]; # initial time, can´t divide by 0

    model = InfiniteModel(optimizer) # create model
    # set_silent(model)

    # Optimizer attributes
    # if the optimizer is KNITRO
    if optimizer == KNITRO.Optimizer
        # KNITRO attributes
        # set_optimizer_attribute(model, "tuner", 1) # set attributes
        set_optimizer_attribute(model, "mip_multistart", 1) # set attributes
        set_optimizer_attribute(model, "mip_method", 1) # test SQP
    end

    # define cont t
    @infinite_parameter(model, t in [t0, tend], supports = collect(sets.dTime), derivative_method = FiniteDifference(Forward(),true))

    # Add variables, constraints, obj
    model = build_model(model, sets, data);
    # Solve model
    optimize!(model)
    return model;
end;

function getResults(model)
  x = all_variables(model)
  xdf=DataFrame(
      name = name.(x),
      value = value.(x),
  )
  idx=findall(x->x=="",name.(x)) # find point variables
  delete!(xdf, idx) # delete point variables
  xdict=Dict{Any,Any}(Pair.(xdf.name, xdf.value))
  merge!(xdict,Dict("t"=>supports(model[:t]), "γ_cont"=>value.(model[:γ_cont])))
  return xdict
end

function rollingHorizon(W, # weights
    Tw, # time window [days]
    steps, # number of steps to move the window
    Δt) # time length of each step [hr]
    # Build the data dictionary

    data=buildDict();
    # Initialize
    tend = 24*Tw; # [hr]
    Dt=0:Δt:tend; Dt=Dt*3600; # time array in seconds
    s=modelSettings(nEV=1:2, dTime=collect(Dt), costWeights=W);
    results=Vector{Dict}(undef, steps); # allocate memory
    for ts in 1:steps
        # build+solve model
        model=solvePolicies(KNITRO.Optimizer, s, data);
        # Print solution summary
        # solution_summary(optimizer_model(model))
        results[ts]=getResults(model);
        model=InfiniteModel();
        # update data, which contains the initial conditions
        data=update_measurements(results[ts], s, data);
        # move time window
        Dt = Dt .+ Δt*3600.0;
        # update_forecasts.(data, Dt)
        s.dTime=collect(Dt);
    end
    return results, data, s
end

Wgrid = 1;
Wloss = 2;
W=[Wgrid 1000 Wloss];
results, data, s=rollingHorizon(W, 1, 4, 1/4);

and the error stacktrace that I get is

--Z-- Artelys license manager debugging is enabled. (Built Dec  6 2022)
--Z-- Trying server defined by ARTELYS_LICENSE_NETWORK_ADDR.
--Z-- querying DNS for address to '131.zzz.xxx.yyy'...
--Z--   getaddrinfo() returned 131.zzz.xxx.yyy
--Z--   DNS lookup returned successfully.
--Z-- connecting to the server at '131.zzz.xxx.yyy:8349'...
--Z--   connect successful
--Z-- sending request to floating license server
--Z--   reply contains 40 bytes
departure time= [8.0; 7.0;;] 
arrival time= [13.0; 15.0;;] 
day= 1 
t0=0.0 Δt=900.0

Final index 97
=======================================
           Academic License
       (NOT FOR COMMERCIAL USE)
         Artelys Knitro 13.2.0
=======================================

MINLP solver shifted start point to satisfy bounds (388 variables).
WARNING: Problem appears to have nonlinear equalities and be non-convex.
         The Knitro mixed integer solver is designed for convex problems.
         For non-convex problems it is only a heuristic, and the reported
         bounds and optimality claims cannot be verified.

datacheck:               0
hessian_no_f:            1
numthreads:              1
mip_method:              1
mip_multistart           1
mip_numthreads:          1
Knitro changing mip_rootalg from AUTO to 1.
Knitro changing mip_lpalg from AUTO to 3.
Knitro changing mip_branchrule from AUTO to 2.
Knitro changing mip_selectrule from AUTO to 2.
Knitro changing mip_mir from AUTO to 2.
Knitro changing mip_clique from AUTO to 0.
Knitro changing mip_zerohalf from AUTO to 0.
Knitro changing mip_liftproject from AUTO to 0.
Knitro changing mip_knapsack from AUTO to 1.
Knitro changing mip_gomory from AUTO to 0.
Knitro changing mip_rounding from AUTO to 3.
Knitro changing mip_heuristic_strategy from AUTO to 1.
Knitro changing mip_heuristic_feaspump from AUTO to 1.
Knitro changing mip_heuristic_misqp from AUTO to 0.
Knitro changing mip_heuristic_mpec from AUTO to 1.
Knitro changing mip_heuristic_diving from AUTO to 0.
Knitro changing mip_heuristic_lns from AUTO to 0.
Knitro changing mip_pseudoinit from AUTO to 1.

Problem Characteristics
-----------------------
Objective goal:  Minimize
Objective type:  linear
Number of variables:                               5335
    bounded below only:                             485
    bounded above only:                             485
    bounded below and above:                       1843
    fixed:                                            0
    free:                                          2522
Number of binary variables:                         485
Number of integer variables:                          0
Number of constraints:                             4965
    linear equalities:                             3122
    quadratic equalities:                             0
    gen. nonlinear equalities:                      873
    linear one-sided inequalities:                  970
    quadratic one-sided inequalities:                 0
    gen. nonlinear one-sided inequalities:            0
    linear two-sided inequalities:                    0
    quadratic two-sided inequalities:                 0
    gen. nonlinear two-sided inequalities:            0
Number of nonzeros in Jacobian:                   13130
Number of nonzeros in Hessian:                     2328

Knitro detected 0 GUB constraints
Knitro derived 0 knapsack covers after examining 970 constraints
Knitro using Branch and Bound method with 1 thread.

       Nodes        Best solution   Best bound      Gap       Time 
   Expl  |  Unexpl      value         value                  (secs)
   ---------------  -------------   ----------      ---      ------
      0       0                           -inf                0.822
      1       2                    3.49307e-07                2.361
      1       2  3.72763e-07   FP  3.49307e-07      0.00%    15.081

EXIT: Optimal solution found (assuming convexity).

Final Statistics for MIP
------------------------
Final objective value               =  3.72762588653301e-07
Final bound value                   =  3.49307186804510e-07
Final optimality gap (abs / rel)    =  2.35e-08 / 2.35e-08 (0.00%)
# of root cutting plane rounds      =  0
# of restarts                       =  0
# of nodes processed                =  1 (1.534s)
# of strong branching evaluations   =  0 (0.000s)
# of function evaluations           =  1353 (1.443s)
# of gradient evaluations           =  805 (0.898s)
# of hessian evaluations            =  844 (3.086s)
# of hessian-vector evaluations     =  0
# of subproblems processed          =  6 (14.247s)
Total program time (secs)           =  15.081 (14.859 CPU time)
Time spent in evaluations (secs)    =  5.427

Cuts statistics (gen / add)
---------------------------
Knapsack cuts                       =  0 / 0
Mixed-integer rounding cuts         =  0 / 0

Heuristics statistics (calls / successes / time)
------------------------------------------------
Feasibility pump                    =  1 / 1 / 12.715s
Rounding heuristic                  =  0 / 0 / 0.002s
MPEC heuristic                      =  0 / 0 / 0.000s

===========================================================================

departure time= [8.0; 7.0;;] 
arrival time= [13.0; 15.0;;] 
day= 1 
t0=900.0 Δt=900.0
Final index 98
=======================================
           Academic License
       (NOT FOR COMMERCIAL USE)
         Artelys Knitro 13.2.0
=======================================

MINLP solver shifted start point to satisfy bounds (485 variables).
WARNING: Problem appears to have nonlinear equalities and be non-convex.
         The Knitro mixed integer solver is designed for convex problems.
         For non-convex problems it is only a heuristic, and the reported
         bounds and optimality claims cannot be verified.

datacheck:               0
hessian_no_f:            1
numthreads:              1
mip_method:              1
mip_multistart           1
mip_numthreads:          1
Knitro changing mip_rootalg from AUTO to 1.
Knitro changing mip_lpalg from AUTO to 3.
Knitro changing mip_branchrule from AUTO to 2.
Knitro changing mip_selectrule from AUTO to 2.
Knitro changing mip_mir from AUTO to 2.
Knitro changing mip_clique from AUTO to 0.
Knitro changing mip_zerohalf from AUTO to 0.
Knitro changing mip_liftproject from AUTO to 0.
Knitro changing mip_knapsack from AUTO to 1.
Knitro changing mip_gomory from AUTO to 0.
Knitro changing mip_rounding from AUTO to 3.
Knitro changing mip_heuristic_strategy from AUTO to 1.
Knitro changing mip_heuristic_feaspump from AUTO to 1.
Knitro changing mip_heuristic_misqp from AUTO to 0.
Knitro changing mip_heuristic_mpec from AUTO to 1.
Knitro changing mip_heuristic_diving from AUTO to 0.
Knitro changing mip_heuristic_lns from AUTO to 0.
Knitro changing mip_pseudoinit from AUTO to 1.

Problem Characteristics
-----------------------
Objective goal:  Minimize
Objective type:  linear
Number of variables:                               5335
    bounded below only:                             485
    bounded above only:                             485
    bounded below and above:                       1843
    fixed:                                            0
    free:                                          2522
Number of binary variables:                         485
Number of integer variables:                          0
Number of constraints:                             4965
    linear equalities:                             3122
    quadratic equalities:                             0
    gen. nonlinear equalities:                      873
    linear one-sided inequalities:                  970
    quadratic one-sided inequalities:                 0
    gen. nonlinear one-sided inequalities:            0
    linear two-sided inequalities:                    0
    quadratic two-sided inequalities:                 0
    gen. nonlinear two-sided inequalities:            0
Number of nonzeros in Jacobian:                   13130
Number of nonzeros in Hessian:                     2328

Knitro detected 0 GUB constraints
Knitro derived 0 knapsack covers after examining 970 constraints
Knitro using Branch and Bound method with 1 thread.

       Nodes        Best solution   Best bound      Gap       Time 
   Expl  |  Unexpl      value         value                  (secs)
   ---------------  -------------   ----------      ---      ------
      0       0                           -inf                0.010
      1       2                    3.22270e-07                0.806
      1       2  2.79891e-07   FP  3.22270e-07     -0.00%     1.445

EXIT: Optimal solution found (assuming convexity).

Final Statistics for MIP
------------------------
Final objective value               =  2.79890780414217e-07
Final bound value                   =  3.22269905281477e-07
Final optimality gap (abs / rel)    =  -4.24e-08 / -4.24e-08 (-0.00%)
# of root cutting plane rounds      =  0
# of restarts                       =  0
# of nodes processed                =  1 (0.790s)
# of strong branching evaluations   =  0 (0.000s)
# of function evaluations           =  253 (0.253s)
# of gradient evaluations           =  79 (0.093s)
# of hessian evaluations            =  77 (0.187s)
# of hessian-vector evaluations     =  0
# of subproblems processed          =  2 (1.422s)
Total program time (secs)           =  1.445 (1.375 CPU time)
Time spent in evaluations (secs)    =  0.533

Cuts statistics (gen / add)
---------------------------
Knapsack cuts                       =  0 / 0
Mixed-integer rounding cuts         =  0 / 0

Heuristics statistics (calls / successes / time)
------------------------------------------------
Feasibility pump                    =  1 / 1 / 0.636s
Rounding heuristic                  =  0 / 0 / 0.001s
MPEC heuristic                      =  0 / 0 / 0.000s

===========================================================================

departure time= [8.0; 7.0;;] 
--Z-- Artelys license manager debugging is enabled. (Built Dec  6 2022)
--Z-- Trying server defined by ARTELYS_LICENSE_NETWORK_ADDR.
--Z-- querying DNS for address to '131.zzz.xxx.yyy'...
--Z--   getaddrinfo() returned 131.zzz.xxx.yyy
--Z--   DNS lookup returned successfully.
--Z-- connecting to the server at '131.zzz.xxx.yyy:8349'...
--Z--   connect successful
--Z-- sending request to floating license server
--Z--   reply contains 40 bytes
--Z-- Artelys license manager debugging is enabled. (Built Dec  6 2022)
--Z-- Trying server defined by ARTELYS_LICENSE_NETWORK_ADDR.
--Z-- querying DNS for address to '131.zzz.xxx.yyy'...
--Z--   getaddrinfo() returned 131.zzz.xxx.yyy
--Z--   DNS lookup returned successfully.
--Z-- connecting to the server at '131.zzz.xxx.yyy:8349'...
--Z--   connect successful
--Z-- sending request to floating license server
--Z--   reply contains 40 bytes
--Z-- Artelys license manager debugging is enabled. (Built Dec  6 2022)
--Z-- Trying server defined by ARTELYS_LICENSE_NETWORK_ADDR.
--Z-- querying DNS for address to '131.zzz.xxx.yyy'...
--Z--   getaddrinfo() returned 131.zzz.xxx.yyy
--Z--   DNS lookup returned successfully.
--Z-- connecting to the server at '131.zzz.xxx.yyy:8349'...
--Z--   connect successful
--Z-- sending request to floating license server
--Z--   reply contains 40 bytes
arrival time= [13.0; 15.0;;] 
day= 1 
t0=1800.0 Δt=900.0
Final index 
--Z-- Artelys license manager debugging is enabled. (Built Dec  6 2022)
--Z-- Trying server defined by ARTELYS_LICENSE_NETWORK_ADDR.
--Z-- querying DNS for address to '131.zzz.xxx.yyy'...
--Z--   getaddrinfo() returned 131.zzz.xxx.yyy
--Z--   DNS lookup returned successfully.
--Z-- connecting to the server at '131.zzz.xxx.yyy:8349'...
--Z--   connect successful
--Z-- sending request to floating license server
--Z--   reply contains 40 bytes
--Z-- Artelys license manager debugging is enabled. (Built Dec  6 2022)
--Z-- Trying server defined by ARTELYS_LICENSE_NETWORK_ADDR.
--Z-- querying DNS for address to '131.zzz.xxx.yyy'...
--Z--   getaddrinfo() returned 131.zzz.xxx.yyy
--Z--   DNS lookup returned successfully.
--Z-- connecting to the server at '131.zzz.xxx.yyy:8349'...
--Z--   connect successful
--Z-- sending request to floating license server
--Z--   reply contains 40 bytes
--Z-- Artelys license manager debugging is enabled. (Built Dec  6 2022)
--Z-- Trying server defined by ARTELYS_LICENSE_NETWORK_ADDR.
--Z-- querying DNS for address to '131.zzz.xxx.yyy'...
--Z--   getaddrinfo() returned 131.zzz.xxx.yyy
--Z--   DNS lookup returned successfully.
--Z-- connecting to the server at '131.zzz.xxx.yyy:8349'...
--Z--   connect successful
--Z-- sending request to floating license server
--Z--   reply contains 40 bytes
99
=======================================
           Academic License
       (NOT FOR COMMERCIAL USE)
         Artelys Knitro 13.2.0
=======================================

MINLP solver shifted start point to satisfy bounds (388 variables).
WARNING: Problem appears to have nonlinear equalities and be non-convex.
         The Knitro mixed integer solver is designed for convex problems.
         For non-convex problems it is only a heuristic, and the reported
         bounds and optimality claims cannot be verified.

datacheck:               0
hessian_no_f:            1
numthreads:              1
mip_method:              1
mip_multistart           1
mip_numthreads:          1
Knitro changing mip_rootalg from AUTO to 1.
Knitro changing mip_lpalg from AUTO to 3.
Knitro changing mip_branchrule from AUTO to 2.
Knitro changing mip_selectrule from AUTO to 2.
Knitro changing mip_mir from AUTO to 2.
Knitro changing mip_clique from AUTO to 0.
Knitro changing mip_zerohalf from AUTO to 0.
Knitro changing mip_liftproject from AUTO to 0.
Knitro changing mip_knapsack from AUTO to 1.
Knitro changing mip_gomory from AUTO to 0.
Knitro changing mip_rounding from AUTO to 3.
Knitro changing mip_heuristic_strategy from AUTO to 1.
Knitro changing mip_heuristic_feaspump from AUTO to 1.
Knitro changing mip_heuristic_misqp from AUTO to 0.
Knitro changing mip_heuristic_mpec from AUTO to 1.
Knitro changing mip_heuristic_diving from AUTO to 0.
Knitro changing mip_heuristic_lns from AUTO to 0.
Knitro changing mip_pseudoinit from AUTO to 1.

Problem Characteristics
-----------------------
Objective goal:  Minimize
Objective type:  linear
Number of variables:                               5335
    bounded below only:                             485
    bounded above only:                             485
    bounded below and above:                       1843
    fixed:                                            0
    free:                                          2522
Number of binary variables:                         485
Number of integer variables:                          0
Number of constraints:                             4965
    linear equalities:                             3122
    quadratic equalities:                             0
    gen. nonlinear equalities:                      873
    linear one-sided inequalities:                  970
    quadratic one-sided inequalities:                 0
    gen. nonlinear one-sided inequalities:            0
    linear two-sided inequalities:                    0
    quadratic two-sided inequalities:                 0
    gen. nonlinear two-sided inequalities:            0
Number of nonzeros in Jacobian:                   13130
Number of nonzeros in Hessian:                     2328

Knitro detected 0 GUB constraints
Knitro derived 0 knapsack covers after examining 970 constraints
Knitro using Branch and Bound method with 1 thread.

       Nodes        Best solution   Best bound      Gap       Time 
   Expl  |  Unexpl      value         value                  (secs)
   ---------------  -------------   ----------      ---      ------
      0       0                           -inf                0.013
      1       0                            inf                1.194

EXIT: Problem appears to be infeasible.

Final Statistics for MIP
------------------------
Final objective value               =
Final bound value                   =  1.79769313486232e+308
Final optimality gap (abs / rel)    =  Infinity
# of root cutting plane rounds      =  0
# of restarts                       =  0
# of nodes processed                =  1 (1.175s)
# of strong branching evaluations   =  0 (0.000s)
# of function evaluations           =  98 (0.110s)
# of gradient evaluations           =  71 (0.087s)
# of hessian evaluations            =  70 (0.149s)
# of hessian-vector evaluations     =  0
# of subproblems processed          =  1 (1.175s)
Total program time (secs)           =  1.194 (1.141 CPU time)
Time spent in evaluations (secs)    =  0.346

Cuts statistics (gen / add)
---------------------------
Knapsack cuts                       =  0 / 0
Mixed-integer rounding cuts         =  0 / 0

Heuristics statistics (calls / successes / time)
------------------------------------------------
Feasibility pump                    =  0 / 0 / 0.000s
Rounding heuristic                  =  0 / 0 / 0.000s
MPEC heuristic                      =  0 / 0 / 0.000s

===========================================================================

departure time= [8.0; 7.0;;] 
arrival time= [13.0; 15.0;;] 
day= 1 
t0=2700.0 Δt=900.0
Final index 100
=======================================
           Academic License
       (NOT FOR COMMERCIAL USE)
         Artelys Knitro 13.2.0
=======================================

MINLP solver shifted start point to satisfy bounds (388 variables).
WARNING: Problem appears to have nonlinear equalities and be non-convex.
         The Knitro mixed integer solver is designed for convex problems.
         For non-convex problems it is only a heuristic, and the reported
         bounds and optimality claims cannot be verified.

datacheck:               0
hessian_no_f:            1
numthreads:              1
mip_method:              1
mip_multistart           1
mip_numthreads:          1
Knitro changing mip_rootalg from AUTO to 1.
Knitro changing mip_lpalg from AUTO to 3.
Knitro changing mip_branchrule from AUTO to 2.
Knitro changing mip_selectrule from AUTO to 2.
Knitro changing mip_mir from AUTO to 2.
Knitro changing mip_clique from AUTO to 0.
Knitro changing mip_zerohalf from AUTO to 0.
Knitro changing mip_liftproject from AUTO to 0.
Knitro changing mip_knapsack from AUTO to 1.
Knitro changing mip_gomory from AUTO to 0.
Knitro changing mip_rounding from AUTO to 3.
Knitro changing mip_heuristic_strategy from AUTO to 1.
Knitro changing mip_heuristic_feaspump from AUTO to 1.
Knitro changing mip_heuristic_misqp from AUTO to 0.
Knitro changing mip_heuristic_mpec from AUTO to 1.
Knitro changing mip_heuristic_diving from AUTO to 0.
Knitro changing mip_heuristic_lns from AUTO to 0.
Knitro changing mip_pseudoinit from AUTO to 1.

Problem Characteristics
-----------------------
Objective goal:  Minimize
Objective type:  linear
Number of variables:                               5335
    bounded below only:                             485
    bounded above only:                             485
    bounded below and above:                       1843
    fixed:                                            0
    free:                                          2522
Number of binary variables:                         485
Number of integer variables:                          0
Number of constraints:                             4965
    linear equalities:                             3122
    quadratic equalities:                             0
    gen. nonlinear equalities:                      873
    linear one-sided inequalities:                  970
    quadratic one-sided inequalities:                 0
    gen. nonlinear one-sided inequalities:            0
    linear two-sided inequalities:                    0
    quadratic two-sided inequalities:                 0
    gen. nonlinear two-sided inequalities:            0
Number of nonzeros in Jacobian:                   13130
Number of nonzeros in Hessian:                     2328

Knitro detected 0 GUB constraints
Knitro derived 0 knapsack covers after examining 970 constraints
Knitro using Branch and Bound method with 1 thread.

       Nodes        Best solution   Best bound      Gap       Time 
   Expl  |  Unexpl      value         value                  (secs)
   ---------------  -------------   ----------      ---      ------
      0       0                           -inf                0.009
      1       0                            inf                0.013

EXIT: Problem appears to be infeasible.

Final Statistics for MIP
------------------------
Final objective value               =
Final bound value                   =  1.79769313486232e+308
Final optimality gap (abs / rel)    =  Infinity
# of root cutting plane rounds      =  0
# of restarts                       =  0
# of nodes processed                =  1 (0.000s)
# of strong branching evaluations   =  0 (0.000s)
# of function evaluations           =  1 (0.000s)
# of gradient evaluations           =  1 (0.001s)
# of hessian evaluations            =  0 (0.000s)
# of hessian-vector evaluations     =  0
# of subproblems processed          =  1 (0.000s)
Total program time (secs)           =  0.013 (0.016 CPU time)
Time spent in evaluations (secs)    =  0.001

Cuts statistics (gen / add)
---------------------------
Knapsack cuts                       =  0 / 0
Mixed-integer rounding cuts         =  0 / 0

Heuristics statistics (calls / successes / time)
------------------------------------------------
Feasibility pump                    =  0 / 0 / 0.000s
Rounding heuristic                  =  0 / 0 / 0.000s
MPEC heuristic                      =  0 / 0 / 0.000s

===========================================================================

--Z-- Artelys license manager debugging is enabled. (Built Dec  6 2022)
--Z-- Trying server defined by ARTELYS_LICENSE_NETWORK_ADDR.
--Z-- querying DNS for address to '131.zzz.xxx.yyy'...
--Z--   getaddrinfo() returned 131.zzz.xxx.yyy
--Z--   DNS lookup returned successfully.
--Z-- connecting to the server at '131.zzz.xxx.yyy:8349'...
--Z--   connect successful
--Z-- sending request to floating license server
--Z--   reply contains 40 bytes
--Z-- Artelys license manager debugging is enabled. (Built Dec  6 2022)
--Z-- Trying server defined by ARTELYS_LICENSE_NETWORK_ADDR.
--Z-- querying DNS for address to '131.zzz.xxx.yyy'...
--Z--   getaddrinfo() returned 131.zzz.xxx.yyy
--Z--   DNS lookup returned successfully.
--Z-- connecting to the server at '131.zzz.xxx.yyy:8349'...
--Z--   connect successful
--Z-- sending request to floating license server
--Z--   reply contains 40 bytes
--Z-- Artelys license manager debugging is enabled. (Built Dec  6 2022)
--Z-- Trying server defined by ARTELYS_LICENSE_NETWORK_ADDR.
--Z-- querying DNS for address to '131.zzz.xxx.yyy'...
--Z--   getaddrinfo() returned 131.zzz.xxx.yyy
--Z--   DNS lookup returned successfully.
--Z-- connecting to the server at '131.zzz.xxx.yyy:8349'...
--Z--   connect successful
--Z-- sending request to floating license server
--Z--   reply contains 40 bytes
--Z-- Artelys license manager debugging is enabled. (Built Dec  6 2022)
--Z-- Trying server defined by ARTELYS_LICENSE_NETWORK_ADDR.
--Z-- querying DNS for address to '131.zzz.xxx.yyy'...
--Z--   getaddrinfo() returned 131.zzz.xxx.yyy
--Z--   DNS lookup returned successfully.
--Z-- connecting to the server at '131.zzz.xxx.yyy:8349'...
--Z--   connect successful
--Z-- sending request to floating license server
--Z--   reply contains 40 bytes
--Z-- Artelys license manager debugging is enabled. (Built Dec  6 2022)
--Z-- Trying server defined by ARTELYS_LICENSE_NETWORK_ADDR.
--Z-- querying DNS for address to '131.zzz.xxx.yyy'...
--Z--   getaddrinfo() returned 131.zzz.xxx.yyy
--Z--   DNS lookup returned successfully.
--Z-- connecting to the server at '131.zzz.xxx.yyy:8349'...
--Z--   connect successful
--Z-- sending request to floating license server
--Z--   reply contains 40 bytes
DarioSlaifsteinSk commented 1 year ago

Not an issue with the wrapper but with the formulation.