13:03:34 #startmeeting 13:03:34 Meeting started Wed May 25 13:03:34 2016 UTC. The chair is alinefm. Information about MeetBot at http://wiki.debian.org/MeetBot. 13:03:34 Useful Commands: #action #agreed #help #info #idea #link #topic. 13:03:34 #meetingname scrum 13:03:34 The meeting name has been set to 'scrum' 13:03:43 #info Agenda 13:03:43 #info 1) Status 13:03:43 #info 2) Open discussion 13:03:43 anything else? 13:03:56 no 13:04:03 nop 13:04:50 Morning 13:05:20 so let's get started 13:05:34 #topic Status 13:05:34 #info Please provide your status using the #info command: #info [ 13:06:05 #info [kimchi] ziviani is working on multi-function pci hotplug 13:06:05 #info [kimchi] socorro Sent v2 patch to ML for Edit Virtual Network with 13:06:06 #info [kimchi] socorro passthrough support and including addressing issues from 13:06:06 #info [kimchi] socorro feedback; got applied upstream along with 13:06:06 #info [kimchi] socorro alinefm's patch to complete edit virtual network feature 13:06:06 #info [kimchi] socorro Working on another issue from feedback regarding 13:06:06 #info [kimchi] socorro interfaces showing only for first one even if there are more 13:06:08 #info [kimchi] socorro than one chosen by user. This is an existing bug and not 13:06:10 #info [kimchi] socorro introduced by edit virtual network patch. Sent proposal 13:06:12 #info [kimchi] socorro to ML on how to display that and currently working on that. 13:06:16 #info [kimchi] socorro Revisited some github UI issues and added comments on them 13:06:18 #info [kimchi] socorro as some may no longer be valid. 13:06:39 #info [gingerbase] peterpennings is working in some changes on update selected packages only 13:06:49 #info [kimchi] ziviani sent a patch to fix the log search by time 13:06:51 #info [ginger] read the rpm guidelines and provided fix for issue 334 13:07:07 #info [ginger] ramonn read the rpm guidelines and provided fix for issue 334 13:07:10 #info [kimchi] ziviani sent a patch to fix an issue on serial console 13:07:32 #info [kimchi] alinefm helped socorro with edit network UI issues 13:07:58 #info [Kimchi] pvital submitted V2 of patch "Isolate unit tests execution." 13:07:58 #info [Kimchi] pvital submitted V4 of patch "Add support to Libvirt Events." 13:07:58 #info [Wok] pvital is investigating some performance issues in wokd (high CPU consumption when idle) 13:07:58 #info [Wok] pvital is working on Kimchi issue #78 (actually a Wok issue) - make async task stopable 13:07:58 #info [Wok] [Kimchi] [Ginger*] pvital reviewed (few) patches (this last week) 13:08:14 #info [wok] alinefm sent patch to fix issue on user log activity (user log was displaying "No results found" even when there were logs) 13:08:48 #info [kimchi] lcorreia sent to ML V2,V3,V4 for handling libvirt event ENOSPC 13:08:48 #info [kimchi] lcorreia testing V4 for handling libvirt event ENOSPC with Ziviani's timeout reduction patch 13:08:48 #info [kimchi] lcorreia helped Aline and Socorro testing edit network UI 13:08:48 #info [ginger] lcorreia got upstream patch to make fibre channel listing arch-independent 13:08:49 #info [wok] lcorreia got upstream patches for translation of User Request Log messages 13:08:49 #info [wok] lcorreia got upstream fix for an inconsistency bug on user log download url 13:08:51 #info [wok] lcorreia investigated UI issue #109: make async notifications persistent across tabs 13:09:00 #info [*] danielhb reviewed and applied patches 13:09:25 #info [Kimchi] danielhb implemented a new libvirt network type in Kimchi called 'passthrough' 13:09:51 #info [ginger] danielhb is at this moment working in SR-IOV fixes after testing the backend in real hardware 13:12:58 #info [Kimchi] rotru Completely separated guest static updates functions from live update functions; 13:12:58 #info [Kimchi] rotru Fixed mockmodel functions to support memory devices; 13:12:58 #info [GingerBase] rotru Sent patch to improved capabilities and their log messages [waiting review/commit]; 13:12:58 #info [Kimchi] rotru Sent patch to add feature tests log messages [waiting review/commit]; 13:14:30 #info [kimchi] samhenri sent Storage Management patch v5 13:17:35 #info [Kimchi] rotru Finished final version (v2) of Memory HotPlug support to memory devices greater than 1GB. 13:19:35 anything else? 13:19:50 no 13:20:18 #topic Open Discussion 13:20:23 any other topic for today? 13:20:52 peterpennings, do you have any questions pending on the update selected packages UI? 13:21:19 lagarcia, no 13:21:32 I have a question. Actually a help message :-P 13:21:39 peterpennings, ok. good. thx. 13:21:57 pvital, but I am not looking for help right now (I think) 13:23:01 hehehe 13:23:05 lagarcia, I just want to suggest a new way to deal with async tasks 13:23:19 but it can be another discussion 13:23:26 I'm investigating about "gracefully kill an AsyncTask", and noticed that, there's no way in Wok to kill a process (subprocess.Popen) called by a thread (that is started in AsyncTasl class) 13:23:52 do you guys have any idea how to kill the process? 13:24:22 pvital, I think even AsyncTask must have a function to kill its process and do a cleanup 13:24:38 we can not only kill the process and leave leftovers in the system 13:25:02 I did some tests using multiprocessing instead of multhreading, but the child process still runs after I send a SIGKILL (or SIGTERM) signal to the process 13:26:17 take care when using multithreading... it conflicts with cherrypy threads 13:26:33 alinefm, I don't think so. AsyncTask used multithreading instead of extend it. 13:26:42 pvital, does SIGKILL work? 13:26:42 s/used/usus 13:26:45 uses 13:28:07 alinefm, no! in my tests I send an os.killpg(pid, signal.SIGKILL) but it raises an error saying "No such process" 13:28:28 we can not have a single way to stop a task as we don't know by hand how this task is running 13:28:38 but the process is there, up and running 13:28:41 a task can be a python function or an external command or anything... 13:28:56 pvital, how did you save the pid when started the task? 13:30:28 alinefm, yeah, that's also something I was thinking about. Since user creates a function and passes this function to AsyncTask constructor, I don't know if this function is using run_command or not! 13:31:38 exactly 13:31:39 alinefm, in this case I'm using multiprocessing instead of threading. then I can get the PID of the new process 13:31:57 because that I am saying each Async Task must pass the kill function as a parameter 13:32:54 alinefm, pvital perhaps we could subclass asynctask for the few? modes of execution 13:33:55 alinefm, I think this issue (https://github.com/kimchi-project/kimchi/issues/78) is too complex. We need think in something to control the tasks different that only start the thread and get the results storing the output on objectstore 13:34:42 agree 13:34:50 nobody said it was simple =P 13:35:12 lcorreia, could you elaborate? 13:36:25 alinefm, for example... if the task uses run_command, instantiate CommandAsyncTask, with a specific kill method 13:36:51 alinefm, interesting idea about extent AsyncTask implementation to also receive the "kill function" 13:37:43 then, the kill process will be responsibility of the developer who is using AsyncTask 13:37:53 yeap 13:38:25 lcorreia, we can also do that as some tasks use run_command but either way we will need a cleanup function to restore the system state 13:38:55 for example, while generating a debugreport it uses run_command + sosreport, if we only kill the process some leftovers will be on system 13:39:04 we need to restore the system state 13:39:13 alinefm, I see 13:39:18 but we still need extend how wok control the tasks! today, we only start it (creating and startinf a thread) and get the output and update it's status 13:39:45 pvital, we continue to not be able to change a task status 13:39:57 we will need to create a new API DELETE /tasks/ 13:40:10 this delete operation will kill the Task 13:40:25 alinefm, not only this! 13:42:08 guys, I know you are discussing a specific point of Async tasks. If you are going to rethink this API, can we consider some UI problems? 13:42:26 peterpennings, sure 13:44:41 The UI can't control anything with this tasks. I really want to pass this control to the backend, and it could be persisted. This problem is happening not just with the packages update, but in all system 13:46:00 There is one point in the UI where the code extends de session time out to keep informations in the window. It doesnt make sense 13:47:11 peterpennings, I don't see any other scenario than package update when the tasks are not doing what is expected 13:47:18 could you give an example? 13:49:32 for instance, with live migration or cloning guests 13:49:45 i did a test here, started the process and logout 13:49:56 then started wok with a private window 13:50:22 Any async task lose informations when changing tabs, or using anonymous window, os session time out. 13:50:34 I doubt about that 13:50:42 let me explain 13:50:43 the guests tab wasn't showing the cloning and migrating guests 13:50:54 samhenri, I agree! but because an issue on UI logic 13:51:11 once you started a Task you can get its information using the API /tasks 13:51:35 yes, but guests and storages do have a function to get ongoingtasks 13:51:46 samhenri, correct 13:52:16 when building any Tab which has interactions with Tasks, the UI code should request those tasks and properly update the UI to reflect it 13:52:48 similar to what we do that (GET /tasks?target_uri=/plugins/kimchi/vms/*/clone => which will get all cloning guests) 13:53:23 I can see a problem with the package update because in that case the backend blocks a new request when one is already running (which I agree it is a problem and can not be solved on UI) 13:54:20 but let's say, backend allows simultaneous request to /packagesupdate API, it will allow UI to keep tracking of those tasks to inform user on what is being done 13:54:27 does that make sense? 14:00:59 alinefm, I didn't understand the simultaneous requests 14:04:31 peterpennings, if you do POST /packagesupdate/packageA/upgrade + POST /packagesupdate/packageB/upgrade 14:04:45 the second request will return an error saying the package manager is already running 14:05:01 and in fact it is running to complete the first request related to packageA 14:05:32 peterpennings, because that you are doing the queue on UI side, waiting the packageA to complete to then send a new request 14:06:05 if the session timeout or user switches tabs before you do the second request (packageB) you loose information about which packages to be update 14:06:07 *updated 14:06:21 alinefm exactly. the problem is that we can't store this "update queue" of selected packages with the UI 14:06:28 correct 14:06:56 even with a onGoingTasks() in the update panel 14:07:06 if we change the backend to wait the package manager to complete the request for packageA to then process the request for packageB, we solve that problem 14:07:13 it would get only the last package that was running 14:07:21 correct 14:07:25 perfect alinefm 14:07:33 once the backend receives the request a Task will be created 14:07:58 so you can use GET /tasks?target_uri=/plugins/gingerbase/packagesupdate/*/upgrade to get all those in progress 14:08:08 and a status like "pending" 14:08:19 but I want to do this for all tasks in the system, a window to see all async tasks and then I know that is going on. 14:08:51 When you were talking with pvital to rethink about the tasks API, I told to consider this problem 14:10:19 samhenri, yeap! we can do something like it 14:10:47 peterpennings, as I said in the ML, I agree and like this idea to have a single way to see all the running Tasks and control them 14:10:55 specially if we will be able to stop them 14:11:05 peterpennings, any ETA on the v3 of the package update UI with the frontend fixes unrelated to this API discussion? 14:11:08 but due the time, I think we need to postpone it for the next release 14:11:23 I know that it can not be doing right now, but I just want to consider this 14:11:56 maybe a parameter in the API to know what the origin of this tasks is a good idea too 14:12:43 peterpennings, do you mean something readable for the target_uri? 14:14:13 yes 14:14:40 danielhb, Friday morning 14:15:02 peterpennings, ok 14:15:46 peterpennings, got it 14:15:51 we are over time 14:15:55 anything else for today? 14:16:09 we can discuss this better later.. thanks for the attention 14:16:53 yw! 14:17:17 I will think about a solution to backend issue and send an RFC to the ML 14:17:26 great! 14:17:28 thanks everyone for joining! 14:17:32 #endmeeting