55b2ee core: coldplug possible nop_job

1 file Authored by ypf791 4 years ago, Committed by Packit Service 4 years ago,
    core: coldplug possible nop_job
    
    When a unit in a state INACTIVE or DEACTIVATING, JobType JOB_TRY_RESTART or
    JOB_TRY_RELOAD will be collapsed to JOB_NOP. And use u->nop_job instead
    of u->job.
    
    If a JOB_NOP job is going on with a waiting state, a parallel daemon-reload
    just install it during deserialization. Without a coldplug, the job will
    not be in m->run_queue, which results in a hung try-restart or
    try-reload process.
    
    Reproduce:
    
        run systemctl try-restart test.servcie (inactive) repeatly in a terminal.
        run systemctl daemon-reload repeatly in other terminals.
    
    After successful reproduce, systemctl list-jobs will list the hang job.
    
    Upsteam:
    systemd/systemd#13124
    
    (cherry picked from commit b49e14d5f3081dfcd363d8199a14c0924ae9152f)
    
    Resolves: #1829798
    
    patch_name: 0394-core-coldplug-possible-nop_job.patch
    present_in_specfile: true
    location_in_specfile: 394
    squash_commits: true
    
        
file modified
+4 -2