Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:Lachu:SystemServices
Lachu-PackageKit
0019-Repair-bugs-related-to-GIO-events-not-prop...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0019-Repair-bugs-related-to-GIO-events-not-properly-handl.patch of Package Lachu-PackageKit
From 03f7cd152a73c2f3e818256bab7452acaf1a3068 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C5=82awomir=20Lach?= <slawek@lach.art.pl> Date: Sun, 14 Feb 2021 13:03:55 +0100 Subject: [PATCH 19/46] - Repair bugs related to GIO events not properly handled - Repair bugs related to problems with dependency interactive solver's communication - Better initialize job related structure --- backends/zypp/pk-backend-zypp.cpp | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/backends/zypp/pk-backend-zypp.cpp b/backends/zypp/pk-backend-zypp.cpp index 14e787d8f..3969da6df 100644 --- a/backends/zypp/pk-backend-zypp.cpp +++ b/backends/zypp/pk-backend-zypp.cpp @@ -2218,6 +2218,20 @@ dependency_handle_selection(GIOChannel *source, GIOCondition condition, gpointer data) { + + if (G_IO_IN != (G_IO_IN & condition)) { + + if (G_IO_ERR == (G_IO_ERR & condition) || + G_IO_HUP == (G_IO_HUP & condition) || + G_IO_NVAL == (G_IO_NVAL & condition)) { + + return FALSE; + } + + return TRUE; + } + + #if 0 helper->problems2.push_back(prob); #endif @@ -2234,11 +2248,11 @@ struct backend_job_private *msg_proc = (struct backend_job_private*) data; } - else if (0 == strncmp("SELECTION:", buffer, sizeof("SELECTION:") - 1)) { + else if (0 == strncmp("SELECTION:", buffer, sizeof("SELECTION:"))) { buffer = get_record2(fd, &msg_proc->msg_proc_helper->reader_info); - char *problem_str = strchr(buffer, ':'); + char *problem_str = buffer;//strchr(buffer, ':'); if (NULL == problem_str) { return FALSE; @@ -2297,6 +2311,8 @@ struct backend_job_private *msg_proc = (struct backend_job_private*) data; pk_backend_job_thread_setup(msg_proc->job->helper); + return FALSE; + } } @@ -2347,6 +2363,7 @@ zypp_perform_execution (PkBackendJob *job, ZYpp::Ptr zypp, PerformType type, gbo snprintf(path_to_cache, len, "/var/local/lib/PackageKit/solutions-cache-%s", job->sender); rjob = new (struct backend_job_private)(); + rjob->msg_proc_helper = NULL; pk_backend_job_set_priv_data(job, rjob); transaction_problems = new struct msg_proc_helper; transaction_problems->path_to_cache = path_to_cache; @@ -2660,10 +2677,11 @@ zypp_perform_execution (PkBackendJob *job, ZYpp::Ptr zypp, PerformType type, gbo write(rjob->output, "", sizeof("")); ret = TRUE; - goto exit; } + goto exit; } +#if 0 else if (!second_time) { #if 0 @@ -2679,6 +2697,7 @@ zypp_perform_execution (PkBackendJob *job, ZYpp::Ptr zypp, PerformType type, gbo goto test; #endif } +#endif #if 0 add_resolution_to_zypp(&transaction_problems); @@ -2696,7 +2715,7 @@ zypp_perform_execution (PkBackendJob *job, ZYpp::Ptr zypp, PerformType type, gbo //cleaning up write(rjob->output, "", sizeof("")); - g_source_unref( g_main_context_find_source_by_id(g_main_context_default(), rjob->input_id)); + // g_source_unref( g_main_context_find_source_by_id(g_main_context_default(), rjob->input_id)); if (rjob->msg_proc_helper) free(rjob->msg_proc_helper->path_to_cache); close(rjob->input); -- 2.32.0
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor