Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

A memory leak occurs during real-time precise point positioning #82

Open
2533672343 opened this issue Mar 29, 2024 · 5 comments
Open

A memory leak occurs during real-time precise point positioning #82

2533672343 opened this issue Mar 29, 2024 · 5 comments
Assignees

Comments

@2533672343
Copy link

Describe the bug
Running multi-station real-time precision point positioning has the problem of memory leak.

To Reproduce
Steps to reproduce the behavior:

  1. ./../bin --config ex15_pea_rt_user_gnss_ar.yaml
  2. Enter the 'top' command on the terminal, and you can see that the VIRT value continues to increase.

Expected behavior
The amount of memory used during program execution does not always increase over time.

Configuration files
ex15_pea_rt_user_gnss_ar.yaml, and the ambiguity_resolution is off, delete_old_ephemerides is true.

Desktop (please complete the following information):

  • OS: Linux 20.04
  • Version of Ginan:1.5.4
  • Library used (Boost, Eigen, ...)
@seballgeyer seballgeyer self-assigned this Apr 9, 2024
@seballgeyer
Copy link
Collaborator

Hello

It seems you are experiencing a memory leak issue with Ginan version 1.5.4. Memory leaks can be problematic as they cause the application to consume more and more memory over time, which can eventually lead to performance issues or system crashes.

The first step in addressing this issue is to ensure that you are using the latest version of the software. As you mentioned, you are using Ginan 1.5.4 which is outdated, and updating to the latest version, which is version 3.0.0, could resolve the memory leak problem. The new version includes many improvements such as performance enhancements and bug fixes, which might include a fix for the memory leak issue.

Here’s a general outline of steps you could take to resolve the issue:

  1. Obtain the latest version of Ginan from the official repository.

  2. Configuration Check: Update your configuration files.

If the problem persists, feel free to contact us.

@2533672343
Copy link
Author

Hello

Thanks for your response, and the memory leak problem seems to exist in version 3.0.0 as well.

@seballgeyer
Copy link
Collaborator

Hello,

Could you provide the configuration file you are using?

Thank you.

@2533672343
Copy link
Author

Hello,
Thank you for your reply.
Memory is still slowly increasing after a day of operation. Is it normal ?
The configuration file(rt_ppp_example.yaml) is as follows:
inputs:

inputs_root: ./products/

atx_files:  [ igs20.atx                             ]
egm_files:  [ tables/EGM2008.gfc                    ]
igrf_files: [ tables/igrf13coeffs.txt               ]
erp_files:  [ finals.data.iau2000.txt        ]
planetary_ephemeris_files: [ tables/DE436.1950.2050 ]

troposphere:
    gpt2grid_files: [ tables/gpt_25.grd ]

tides:
    ocean_tide_loading_blq_files:   [ tables/OLOAD_GO.BLQ                  ]
    atmos_tide_loading_blq_files:   [ tables/ALOAD_GO.BLQ                  ]
    ocean_pole_tide_loading_files:  [ tables/opoleloadcoefcmcor.txt ]
    ocean_tide_potential_files:     [ tables/fes2014b_Cnm-Snm.dat   ]

snx_files:  [ IGS0OPSSNX_20233020000_07D_07D_SOL.SNX ]

gnss_observations:
    gnss_observations_root: "https://<user>:<password>@ntrip.data.gnss.ga.gov.au/"
    rtcm_inputs:
        - ALIC00AUS0
        - MAW100ATA0
        - DARW00AUS0
        - STR200AUS0

satellite_data:
    satellite_data_root: "https://<user>:<password>@ntrip.data.gnss.ga.gov.au/"
    rtcm_inputs:
        ssr_antenna_offset: APC
        rtcm_inputs:
        - BCEP00BKG0
        - SSRA00BKG0

outputs:
metadata:
config_description: rt_ppp_example

outputs_root:              ./outputs/<CONFIG>

trace:
    level:                 2
    output_receivers:      false
    output_network:        false
    receiver_filename:     <CONFIG>_<RECEIVER>_<YYYY><DDD><HH>.TRACE
    network_filename:      <CONFIG>_<RECEIVER>_<YYYY><DDD><HH>.TRACE
    output_residuals:      true
    output_residual_chain: true
    output_config:         true

gpx:
    output:                true
    filename:              <CONFIG>_<RECEIVER>_<YYYY><DDD><HH>.GPX

satellite_options:

global:
    models:
        pos:
            enable:             true
            sources:            [ SSR ]
        clock:
            enable:             true
            sources:            [ SSR ]
        code_bias:
            enable:             true
            undefined_sigma:    3
        phase_bias:
            enable:             true
            undefined_sigma:    3

receiver_options:

global:
    elevation_mask:     15       # degrees
    error_model:        ELEVATION_DEPENDENT # {uniform,elevation_dependent}
    code_sigma:         0.3      # Standard deviation of code measurements, m
    phase_sigma:        0.003    # Standard deviation of phase measurmeents, m

ALIC:
    receiver_type:      "SEPT POLARX5"                 # (string)
    antenna_type:       "LEIAR25.R3      NONE"       # (string)
    apriori_position:   [-4052052.8638, 4212835.9618,-2545104.4038] # [floats]
    models:
        eccentricity:
            enable:     true
            offset:     [0.0000,   0.0000,   0.0015] # [floats]

MAW1:
    receiver_type:      "SEPT POLARX5"               # (string)
    antenna_type:       "AOAD/M_T        AUST"       # (string)
    apriori_position:   [ 1111287.2209, 2168911.1847,-5874493.6128] # [floats]
    models:
        eccentricity:
            enable:     true
            offset:     [0.0000,   0.0000,   0.0035] # [floats]

DARW:
    receiver_type:      "SEPT POLARX5"                 # (string)
    antenna_type:       "JAVRINGANT_DM   NONE"       # (string)
    apriori_position:   [-4091359.7273, 4684606.3705,-1408578.9291] # [floats]
    models:
        eccentricity:
            enable:     true
            offset:     [0.0000,   0.0000,   0.0000] # [floats]

STR2:
    receiver_type:      "TRIMBLE ALLOY"              # (string)
    antenna_type:       "LEIAR25.R3      NONE"       # (string)
    apriori_position:   [-4467075.3642, 2683011.8533,-3667006.8945] # [floats]
    models:
        eccentricity:
            enable:     true
            offset:     [0.0000,   0.0000,   0.0000] # [floats]

processing_options:

process_modes:
    ppp:                            true

epoch_control:
    epoch_interval:                 1
    wait_all_receivers:             1

gnss_general:
    rec_reference_system:           GPS

    sys_options:
        gps:
            process:                true
            reject_eclipse:         false
            # clock_codes:            [ L1W, L2W ]
            code_priorities:        [ L1W, L1C, L2W ]
            ambiguity_resolution:   false

estimation_parameters:

receivers:
    global:
        pos:
            estimated:          [true]
            sigma:              [1]
            process_noise:      [0.0]
        clock:
            estimated:          [true]
            sigma:              [1000]
            process_noise:      [100]
        clock_rate:
            estimated:          [false]
            sigma:              [0.005]
            process_noise:      [1e-4]
        ambiguities:
            estimated:          [true]
            sigma:              [1000]
            process_noise:      [0]
        ion_stec:                        # Ionospheric slant delay
            estimated:          [true]   # Estimate state in kalman filter
            sigma:              [200]    # Apriori sigma values - if zero, will be initialised using least squares
            process_noise:      [10]     # Process noise sigmas
        trop:
            estimated:          [true]
            sigma:              [0.3]
            process_noise:      [0.0001]
        trop_grads:
            estimated:          [true]
            sigma:              [0.03]
            process_noise:      [1.0E-6]
        code_bias:
            estimated:          [true] # false
            sigma:              [20]
            process_noise:      [0]
        phase_bias:
            estimated:          [false]
            sigma:              [10]
            process_noise:      [0]

mongo: # Mongo is a database used to store results and intermediate values for later analysis and inter-process communication

enable:              none                     # Enable and connect to mongo database {none,primary,secondary,both}
primary_uri:         mongodb://localhost:27017   # Location and port of the mongo database to connect to
primary_database:    <CONFIG>
output_components:   primary                     # Output components of measurements {none,primary,secondary,both}
output_states:       primary                     # Output states {none,primary,secondary,both}
output_measurements: primary                     # Output measurements and their residuals {none,primary,secondary,both}
output_test_stats:   primary                     # Output test statistics {none,primary,secondary,both}
delete_history:      primary                     # Drop the collection in the database at the beginning of the run to only show fresh data {none,primary,secondary,both}

debug:

instrument: true

@jiargei
Copy link

jiargei commented Oct 28, 2024

Is that correlated to #119 ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants