Can you also attach the scenario files? A few cars approaching a single
traffic light is insufficient for reproducing this problem on my end.

Am Do., 29. Dez. 2022 um 04:37 Uhr schrieb Nine, Harmon S via sumo-user <
[email protected]>:

> BTW, I'm using libsumo from sumo 1.15.0.
> -- Harmon
> ------------------------------
> *From:* sumo-user <[email protected]> on behalf of Nine,
> Harmon S via sumo-user <[email protected]>
> *Sent:* Wednesday, December 28, 2022 9:36 PM
> *To:* Nine, Harmon S via sumo-user <[email protected]>
> *Cc:* Nine, Harmon S <[email protected]>
> *Subject:* [sumo-user] "corrupted size vs. prev_size" error when using
> libsumo in Java
>
> Hello.
>
> I'm using the Java interface for libsumo.  When using the
>
> Vehicle.getNextTLS(vehicleId)
>
> I'm getting a "corrupted size vs prev_size" error during runtime.
>
> From the web, it appears this occurs when "memory chunk control structure
> fields in the adjacent following chunk are being overwritten due to
> out-of-bounds access by the code" (
> https://stackoverflow.com/questions/49628615/understanding-corrupted-size-vs-prev-size-glibc-error
> <https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fstackoverflow.com%2Fquestions%2F49628615%2Funderstanding-corrupted-size-vs-prev-size-glibc-error&data=05%7C01%7Charmon.s.nine%40vanderbilt.edu%7Ca6b9ead800b64a5a61f808dae94de365%7Cba5a7f39e3be4ab3b45067fa80faecad%7C0%7C0%7C638078818013280112%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=rIFUunEIOXixydiDeBF%2B5yQIMsDsEipSNxGwgXo6mM0%3D&reserved=0>
> )
>
> The code that's incurring the error is below. It appears the error
> happens during garbage collection, I'm guessing when the
> memory used by the data returned by "Vehicle.getNextTLS(vehicleId)" is
> reclaimed.
>
> The error occurs on the explicit call to "System.gc()".  Without this
> call, the error occurs later, when garbage collection is implicitly called
> by the JVM.
>
> How can this be fixed?
>
> double oldModulus = 0;
> int modulusPeriod = 90;
>
> double currentTime = 0;
>
> while(true) {
>     StringVector stringVector = Vehicle.getIDList();
>
>     for (String vehicleId : stringVector) {
>
>         TraCINextTLSVector traCINextTLSVector = Vehicle.getNextTLS(vehicleId);
>
>         if (traCINextTLSVector.size() > 0) {
>
>             TraCINextTLSData traCINextTLSData = traCINextTLSVector.get(0);
>
>             String tlsId = traCINextTLSData.getId();
>
>             if (tlsId.equals("traffic-light-id")) {
>
>                 if (Vehicle.getSpeed(vehicleId) == 0.0) {
>
>                     ++stoppedVehicles;
>                 }
>             }
>         }
>     }
>
>     double newModulus = currentTime - (int)(currentTime / modulusPeriod) * 
> modulusPeriod;
>
>     if (newModulus < oldModulus) {
>
>         double average = stoppedVehicles/modulusPeriod;
>
>         System.out.println(average);
>
>         stoppedVehicles = 0;
>
>         System.gc();  // WITH THIS CALL, THE "corrupted size vs. prev_size" 
> ERROR OCCURS.
>
>     }
>
>     oldModulus = newModulus;
>
>     currentTime += 1;
> }
>
>
> -- Harmon
> _______________________________________________
> sumo-user mailing list
> [email protected]
> To unsubscribe from this list, visit
> https://www.eclipse.org/mailman/listinfo/sumo-user
>
_______________________________________________
sumo-user mailing list
[email protected]
To unsubscribe from this list, visit 
https://www.eclipse.org/mailman/listinfo/sumo-user

Reply via email to