Univention Bugzilla – Attachment 10799 Details for
Bug 53558
Veyon crashes if iTALC Client in Computerroom
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
dont add duplicate jobs
21_dont_add_duplicate_jobs.quilt (text/plain), 2.31 KB, created by
Julia Bremer
on 2021-08-17 08:44:30 CEST
(
hide
)
Description:
dont add duplicate jobs
Filename:
MIME Type:
Creator:
Julia Bremer
Created:
2021-08-17 08:44:30 CEST
Size:
2.31 KB
patch
obsolete
>Index: cups-2.2.1/scheduler/job.c >=================================================================== >--- cups-2.2.1.orig/scheduler/job.c >+++ cups-2.2.1/scheduler/job.c >@@ -1450,6 +1450,19 @@ cupsdFreeAllJobs(void) > job; > job = (cupsd_job_t *)cupsArrayNext(Jobs)) > cupsdDeleteJob(job, CUPSD_JOB_DEFAULT); >+ /* >+ * Make sure all the arrays are completely cleared >+ * duplicate jobs can lead to left-over pointers >+ */ >+ for (job = (cupsd_job_t *)cupsArrayFirst(ActiveJobs); >+ job; >+ job = (cupsd_job_t *)cupsArrayNext(ActiveJobs)) >+ cupsArrayRemove(ActiveJobs, job); >+ >+ for (job = (cupsd_job_t *)cupsArrayFirst(PrintingJobs); >+ job; >+ job = (cupsd_job_t *)cupsArrayNext(PrintingJobs)) >+ cupsArrayRemove(PrintingJobs, job); > > cupsdReleaseSignals(); > } >@@ -4199,17 +4212,22 @@ load_job_cache(const char *filename) /* > } > else if (!_cups_strcasecmp(line, "</Job>")) > { >- cupsArrayAdd(Jobs, job); > >- if (job->state_value <= IPP_JOB_STOPPED && cupsdLoadJob(job)) >- cupsArrayAdd(ActiveJobs, job); >- else if (job->state_value > IPP_JOB_STOPPED) >- { >- if (!job->completed_time || !job->creation_time || !job->name || !job->koctets) >- { >- cupsdLoadJob(job); >- unload_job(job); >- } >+ // do not add duplicated jobs from job.cache >+ if (!cupsdFindJob(jobid)) { >+ cupsdLogMessage(CUPSD_LOG_WARN, "Duplicate jobid %d", jobid); >+ cupsArrayAdd(Jobs, job); >+ >+ if (job->state_value <= IPP_JOB_STOPPED && cupsdLoadJob(job)) >+ cupsArrayAdd(ActiveJobs, job); >+ else if (job->state_value > IPP_JOB_STOPPED) >+ { >+ if (!job->completed_time || !job->creation_time || !job->name || !job->koctets) >+ { >+ cupsdLoadJob(job); >+ unload_job(job); >+ } >+ } > } > > job = NULL; >Index: cups-2.2.1/scheduler/process.c >=================================================================== >--- cups-2.2.1.orig/scheduler/process.c >+++ cups-2.2.1/scheduler/process.c >@@ -404,8 +404,10 @@ cupsdEndProcess(int pid, /* I - Process > > pid = -pid; > } >- >- if (force) >+ if (abs(pid) == 1){ >+ cupsdLogMessage(CUPSD_LOG_ERROR, "Cupsd tried to kill (G)PID %d. Skipped.", pid); >+ } >+ else if (force) > return (kill(pid, SIGKILL)); > else > return (kill(pid, SIGTERM));
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 53558
: 10799 |
10801