*** yamamoto_ has joined #openstack-dragonflow | 01:12 | |
*** meeeow has joined #openstack-dragonflow | 01:16 | |
openstackgerrit | Merged openstack/dragonflow: Don't use multicase Mac address as source mac or port mac in fullstack test cases https://review.openstack.org/347167 | 01:23 |
---|---|---|
openstackgerrit | Merged openstack/dragonflow: NB DB entry point definition https://review.openstack.org/347243 | 01:24 |
openstackgerrit | Merged openstack/dragonflow: Use UTC time when update lockedobject timestamp https://review.openstack.org/336891 | 01:24 |
openstackgerrit | heshan proposed openstack/dragonflow: modify supported_extension_aliases https://review.openstack.org/347139 | 01:43 |
openstackgerrit | heshan proposed openstack/dragonflow: establish only one connection with NbApi https://review.openstack.org/347154 | 01:54 |
openstackgerrit | heshan proposed openstack/dragonflow: modify supported_extension_aliases https://review.openstack.org/347139 | 01:59 |
openstackgerrit | liuhaixia proposed openstack/dragonflow: Fix l2_ml2_app bug https://review.openstack.org/347741 | 02:30 |
*** yamamoto_ has quit IRC | 02:31 | |
*** meeeow has quit IRC | 02:39 | |
*** shz has joined #openstack-dragonflow | 03:26 | |
*** shihanzhang has quit IRC | 03:29 | |
openstackgerrit | heshan proposed openstack/dragonflow: modify supported_extension_aliases https://review.openstack.org/347139 | 03:44 |
openstackgerrit | Li Ma proposed openstack/dragonflow: Skip the ARP responder application test https://review.openstack.org/343464 | 04:14 |
*** gampel has joined #openstack-dragonflow | 05:12 | |
openstackgerrit | Merged openstack/dragonflow: Extra command line argument is invalid https://review.openstack.org/345348 | 05:18 |
*** gampel has quit IRC | 05:21 | |
*** oanson has joined #openstack-dragonflow | 05:27 | |
*** gampel has joined #openstack-dragonflow | 05:30 | |
*** gampel has quit IRC | 05:36 | |
*** gongysh has joined #openstack-dragonflow | 05:41 | |
*** gongysh has quit IRC | 05:58 | |
openstackgerrit | weizj proposed openstack/dragonflow: Check the validity of arguments https://review.openstack.org/346309 | 06:12 |
*** gongysh has joined #openstack-dragonflow | 06:19 | |
*** yamamoto_ has joined #openstack-dragonflow | 06:27 | |
*** yuval has joined #openstack-dragonflow | 06:28 | |
*** gongysh has quit IRC | 06:32 | |
*** meeeow has joined #openstack-dragonflow | 06:32 | |
*** irenab has joined #openstack-dragonflow | 07:03 | |
*** gongysh has joined #openstack-dragonflow | 07:25 | |
*** saggi has joined #openstack-dragonflow | 08:00 | |
openstackgerrit | Li Ma proposed openstack/dragonflow: Support DPDK https://review.openstack.org/348169 | 08:21 |
*** saggi1 has joined #openstack-dragonflow | 08:47 | |
*** saggi has quit IRC | 08:47 | |
*** feipeng has joined #openstack-dragonflow | 09:11 | |
feipeng | hi anson | 09:12 |
feipeng | omer, are you there ? | 09:12 |
*** yamamoto_ has quit IRC | 09:43 | |
*** saggi1 has quit IRC | 09:54 | |
oanson | Hi, | 09:55 |
oanson | I'm here now | 09:55 |
feipeng | how can I realize the share memory for mult-process in python ? | 09:57 |
feipeng | class RedisMgt(object) get_instance method can be multi-called, but the member var like master_list is not shared for multi-process | 09:59 |
oanson | I'm not sure I understand the question. Can you please elaborate? | 10:00 |
feipeng | get_instance this func can be initialized many times, right ? | 10:04 |
feipeng | in class RedisMgt | 10:04 |
oanson | Hold on, let me look | 10:05 |
oanson | Yes | 10:05 |
oanson | At least once per ip/port pair | 10:06 |
feipeng | yes, and neutron server will call NbApi initialize and call self.driver.initialize ,right ? | 10:07 |
oanson | Yes | 10:07 |
oanson | But I don't remember if this happens before or after the fork | 10:07 |
feipeng | it is happens befor fork | 10:08 |
oanson | All right | 10:09 |
feipeng | 2016-07-28 17:35:54.065 74747 INFO dragonflow.neutron.ml2.mech_driver [-] Starting DFMechDriver | 10:09 |
feipeng | 2016-07-28 17:35:54.067 74747 INFO dragonflow.db.drivers.redis_mgt [-] get_instance, get_instance nodes:{'10.250.83.90:4005': {'status': 'connected', 'last_pong_rcvd': '1469698551879', 'epoch': '5', 'node_id': 'ddd1c9a976f36ef9f44a0292c4d8576bda2d4899', 'role': 'slave', 'last_ping_sent': '0', 'slots': [], 'master_id': '1beb4b1622edf438a2dc4cd4bd201 | 10:09 |
feipeng | a962ad37265'}, '10.250.83.90:4004': {'status': 'connected', 'last_pong_rcvd': '1469698550876', 'epoch': '4', 'node_id': '7b072fc84bbb6e904dfa6edd0f477422c0c28e70', 'role': 'slave', 'last_ping_sent': '0', 'slots': [], 'master_id': '40d8b43ed85ac4eb706d70c83a550a2ed7830869'}, '10.250.83.90:4006': {'status': 'connected', 'last_pong_rcvd': '14696985538 | 10:09 |
feipeng | 82', 'epoch': '6', 'node_id': '412fdd212fe400ef1e4d7885b6cfd1f34a29b462', 'role': 'slave', 'last_ping_sent': '0', 'slots': [], 'master_id': 'bda6005b3485ce0a55766a7b4eceb0e48bda2706'}, '10.250.83.90:4001': {'status': 'connected', 'last_pong_rcvd': '0', 'epoch': '1', 'node_id': '40d8b43ed85ac4eb706d70c83a550a2ed7830869', 'role': 'master', 'last_ping | 10:09 |
feipeng | _sent': '0', 'slots': [['0', '5460']], 'master_id': '-'}, '10.250.83.90:4003': {'status': 'connected', 'last_pong_rcvd': '1469698548873', 'epoch': '3', 'node_id': 'bda6005b3485ce0a55766a7b4eceb0e48bda2706', 'role': 'master', 'last_ping_sent': '0', 'slots': [['10923', '16383']], 'master_id': '-'}, '10.250.83.90:4002': {'status': 'connected', 'last_p | 10:09 |
feipeng | ong_rcvd': '1469698552881', 'epoch': '2', 'node_id': '1beb4b1622edf438a2dc4cd4bd201a962ad37265', 'role': 'master', 'last_ping_sent': '0', 'slots': [['5461', '10922']], 'master_id': '-'}} | 10:09 |
feipeng | 2016-07-28 17:35:55.228 74747 INFO oslo_service.service [-] Starting 2 workers | 10:10 |
feipeng | 2016-07-28 17:35:55.230 74747 DEBUG oslo_service.service [-] Started child 74756 _start_child /usr/local/lib/python2.7/dist-packages/oslo_service/service.py:475 | 10:10 |
feipeng | as you can see , redis_mgt [-] get_instance is call before fork | 10:10 |
oanson | Yes | 10:11 |
oanson | You added these logs in your repository? I can't see them in master | 10:11 |
feipeng | there is problem for this ,if main process changed redis_mgt 's member var like master_list. sub process can not get the new value for master_list. | 10:13 |
feipeng | yes,we open the log for this | 10:13 |
oanson | Yes, this is true | 10:13 |
oanson | But I don't yet understand the context. When is this change happening? | 10:13 |
feipeng | so,there is need for memory share for multi process | 10:14 |
oanson | Not necessarily. When does this change happen? How? Why? | 10:14 |
feipeng | in redis HA feature, use this master list to record cluster info for redis | 10:14 |
feipeng | I think this feature is merged into master branch | 10:15 |
feipeng | in redis HA feature, use a thread to get newest redis cluster info and update master_list | 10:16 |
feipeng | start_detect_for_failover ,this is start a thread to get newest redis cluster info | 10:17 |
feipeng | when redis cluster failedover, redis cluster info will changed, master_list will updated in thread started bystart_detect_for_failover | 10:19 |
oanson | But it looks like this method is called in all forks | 10:20 |
feipeng | so,there is need for memory share for multi process | 10:20 |
feipeng | I test in my local env | 10:21 |
feipeng | no,this method is only called in main fork | 10:21 |
oanson | I see. | 10:21 |
oanson | Memory sharing in python is problematic: http://stackoverflow.com/questions/1268252/python-possible-to-share-in-memory-data-between-2-separate-processes | 10:22 |
feipeng | I | 10:22 |
feipeng | I test a method multiprocessing.Array('c', 10) for multi process | 10:23 |
feipeng | it worked | 10:23 |
oanson | For that you need to encode the dictionary, and un-encode it every time it changes | 10:23 |
oanson | and compare the content to see that it changed | 10:23 |
feipeng | yes I test Python Multiprocessing module.it seem worked | 10:24 |
oanson | It seems strange thought that the method only works on the parent process | 10:25 |
feipeng | yes, it is done in redis HA now. | 10:25 |
feipeng | I think maybe parent process thread is not inherited | 10:25 |
feipeng | the thread is started by start_detect_for_failover | 10:26 |
oanson | One sec. Let me check something | 10:30 |
feipeng | oK | 10:31 |
feipeng | OK | 10:31 |
*** meeeow has quit IRC | 10:32 | |
oanson | I tested locally. | 10:43 |
oanson | threading should work even after fork | 10:44 |
oanson | How did you verify that the HA monitoring loop only runs once? | 10:44 |
*** yamamoto has joined #openstack-dragonflow | 10:46 | |
feipeng | you can add test log for HA monitoring loop, it will print pid, or use os.get_pid | 10:46 |
oanson | And you only see one pid? | 10:47 |
feipeng | yes | 10:47 |
oanson | And you're sure q-svc has forked? | 10:49 |
feipeng | yes | 10:49 |
*** yamamoto has quit IRC | 10:49 | |
oanson | This is very strange... | 10:49 |
feipeng | because I use neutron net-creat it is run in another pid | 10:49 |
oanson | You see logs from all q-svc instances? Or only the parent? | 10:50 |
oanson | In general, not there specifically | 10:50 |
feipeng | I do not understand | 10:53 |
*** yamamoto has joined #openstack-dragonflow | 10:54 | |
feipeng | I can give you some log of my local env | 10:57 |
feipeng | use espace | 10:57 |
feipeng | do you get my log ? | 10:59 |
feipeng | I add LOG.info("redis mgt, running") in run() for redis HA monitor thread | 10:59 |
feipeng | this is my way to start neutron | 11:01 |
feipeng | "/usr/bin/python /usr/local/bin/neutron-server --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini" | 11:01 |
feipeng | omer ,are you still there ? | 11:05 |
feipeng | I have to leave ,contact me if you need. :) | 11:16 |
*** shz has quit IRC | 11:16 | |
*** shz has joined #openstack-dragonflow | 11:16 | |
*** gongysh has quit IRC | 11:37 | |
*** saggi has joined #openstack-dragonflow | 11:48 | |
*** saggi has quit IRC | 12:11 | |
*** gampel has joined #openstack-dragonflow | 12:35 | |
*** yamamoto has quit IRC | 12:40 | |
*** saggi has joined #openstack-dragonflow | 12:46 | |
*** gampel has quit IRC | 12:53 | |
*** saggi has quit IRC | 12:57 | |
*** saggi has joined #openstack-dragonflow | 13:05 | |
*** gongysh has joined #openstack-dragonflow | 13:16 | |
*** oanson has quit IRC | 13:16 | |
*** yuval has quit IRC | 13:33 | |
*** yamamoto has joined #openstack-dragonflow | 13:41 | |
*** yamamoto has quit IRC | 13:46 | |
*** saggi has quit IRC | 13:54 | |
openstackgerrit | Yuli proposed openstack/dragonflow: Add redis delete table command https://review.openstack.org/348337 | 13:57 |
*** gongysh has quit IRC | 14:15 | |
*** gampel has joined #openstack-dragonflow | 14:22 | |
*** saggi has joined #openstack-dragonflow | 14:27 | |
*** gampel has quit IRC | 14:35 | |
*** saggi has quit IRC | 14:59 | |
*** gsagie_ has joined #openstack-dragonflow | 15:01 | |
*** yamamoto has joined #openstack-dragonflow | 15:06 | |
*** yamamoto has quit IRC | 15:10 | |
*** openstackgerrit has quit IRC | 15:18 | |
*** openstackgerrit has joined #openstack-dragonflow | 15:19 | |
*** gampel has joined #openstack-dragonflow | 15:28 | |
*** gampel has quit IRC | 16:26 | |
*** gampel has joined #openstack-dragonflow | 16:29 | |
*** gampel has quit IRC | 16:43 | |
*** gsagie_ has quit IRC | 17:08 | |
*** gampel has joined #openstack-dragonflow | 18:04 | |
*** gampel has quit IRC | 18:17 | |
*** yamamoto has joined #openstack-dragonflow | 21:09 | |
*** yamamoto has quit IRC | 21:21 | |
*** yamamoto has joined #openstack-dragonflow | 22:22 | |
*** yamamoto has quit IRC | 22:27 | |
*** yamamoto has joined #openstack-dragonflow | 23:24 | |
*** yamamoto has quit IRC | 23:29 |
Generated by irclog2html.py 2.14.0 by Marius Gedminas - find it at mg.pov.lt!