Hi! 

We've met two new problems:

1. On a test corrupted DB with two broken references checks reported only of 
them.

There are two broken refs from two "virtual_machine_interface" to the same 
(nonexistent) "routing_instance"
virtual_machine_interface:ee0e2cd7-dcbc-411b-81f3-9408b58bca7e --(ref)--> 
routing_instance:c54f7813-b813-44f5-bad7-001679bc8783
virtual_machine_interface:453a323a-d069-4a44-b29d-539b77b16d6d --(ref)--> 
routing_instance:c54f7813-b813-44f5-bad7-001679bc8783

Checks report:
broken references
  virtual_machine_interface/453a323a-d069-4a44-b29d-539b77b16d6d -> 
routing_instance/c54f7813-b813-44f5-bad7-001679bc8783

Broken ref from ee0e.. even not loaded into graph:

gremlin> g.V('ee0e2cd7-dcbc-411b-81f3-9408b58bca7e').outE()
==>e[832][ee0e2cd7-dcbc-411b-81f3-9408b58bca7e-parent->73e52d96-de4b-433a-bb2e-cf5abc7c0668]
==>e[556][ee0e2cd7-dcbc-411b-81f3-9408b58bca7e-ref->9a2dde17-52cf-4f0f-a8e0-ce981dc5d374]
==>e[1004][ee0e2cd7-dcbc-411b-81f3-9408b58bca7e-ref->7b87cd81-cd5c-4a93-aa14-fa09d643823b]

But ref it exists in Cassandra:
$ cqlsh -e "SELECT blobAsText(key), blobAsText(column1) FROM 
config_db_uuid.obj_uuid_table WHERE 
key=textAsBlob('ee0e2cd7-dcbc-411b-81f3-9408b58bca7e')" | grep routing_instance
 ee0e2cd7-dcbc-411b-81f3-9408b58bca7e | 
ref:routing_instance:c54f7813-b813-44f5-bad7-001679bc8783

2. When running checks on a DB with heavy (test) load (creating/removing 
networks, interfaces, VMs) false positives are generated:
E.g., A --ref--> B.
1. check reads A from cassandra
2. A and B are removed
3. check does not find B and reports it as broken ref

Didn't you meet the same problem with changing DB?

09.11.2017, 13:46, "Jean-Philippe Braun" <e...@patapon.info>:
> That's indeed quite strange! I will have a look to handle such case.
>
> Did the checks yield any results ?
>
> JP
>
> Le Friday 03 Nov 2017 à 12:20:30 (+0500), simono...@yandex-team.ru a écrit :
>>  Thanks for ideas!
>>
>>  I've found that some backrefs in obj_uuid_table to 'instance_ip' are 
>> duplicated with strange backrefs to 'instance-ip':
>>
>>  
>> obj_uuid_table:d4f5b4c5-50ab-4989-a131-c6288125c616,backref:instance_ip:094be277-eac2-4e50-88ed-c689c6c39f73,{is_weakref:
>>  false, attr: null}
>>  
>> obj_uuid_table:d4f5b4c5-50ab-4989-a131-c6288125c616,backref:instance-ip:094be277-eac2-4e50-88ed-c689c6c39f73,{is_weakref:
>>  false, attr: null}
>>
>>  After removal of backrefs with 'instance-ip', the database has been 
>> imported successfully.
>>  Now trying to find where in the code such backrefs can appear.
>>
>>  27.10.2017, 20:42, "Jean-Philippe Braun" <e...@patapon.info>:
>>  > Thanks for trying out the tool,
>>  >
>>  > From my understanding the dump wasn't properly generated, if you have
>>  > the possibility of sharing me the dump file I could have a look at it.
>>  >
>>  > Since your are running the docker image, you can find the dump.json file
>>  > from the mountpoint in the host system, something like:
>>  > 
>> /var/lib/docker/devicemapper/mnt/8e791d0973b92ab926675831ef08eeb68ed3d8cb66741e5c28f668f38e1e0e3c/rootfs/srv/apache-tinkerpop-gremlin-console/
>>  >
>>  > If not, it means that two different edges with the same id were created,
>>  > its something that shouldn't happen. You can open the dump with a text
>>  > editor and look for that particular id and see to which resources theses
>>  > edges refers to. It might reflect an issue in the contrail DB.
>>  >
>>  > I've never encounter this kind of issue on our platforms though.
>>  >
>>  > JP
>>  >
>>  > Le Friday 27 Oct 2017 à 20:03:44 (+0500), simono...@yandex-team.ru a 
>> écrit :
>>  >>  Hello!
>>  >>
>>  >>  Thank you for the tools!
>>  >>
>>  >>  Trying to run contrail-fsck on a test db, get an error:
>>  >>  "Error in checks.groovy at [8: 
>> g.io(graphson()).readGraph(graphFilename);] -
>>  >>  Edge with id already exists: 1694"
>>  >>
>>  >>  What further steps would you recommend for troubleshooting?
>>  >>
>>  >>  18.10.2017, 23:07, "Illia Polliul" <ipoll...@mirantis.com>:
>>  >>
>>  >>      That utility looks very helpful!  I’ll definitely check it, it can 
>> be a
>>  >>      life-saver at certain moments.
>>  >>      My appreciation for all contrail-api-cli stuff
>>  >>
>>  >>      Best regards,
>>  >>      Illia Polliul
>>  >>      Sr. Deployment Engineer | Mirantis, Inc.
>>  >>      Skype: ilya_pollul
>>  >>
>>  >>          On Oct 17, 2017, at 1:02 PM, Jean-Philippe Braun 
>> <e...@patapon.info>
>>  >>          wrote:
>>  >>
>>  >>          Hi all,
>>  >>
>>  >>          Since several months @cloudwatt we worked on some tools to be 
>> able to
>>  >>          check the consistency of our contrail config DB on our different
>>  >>          platforms.
>>  >>
>>  >>          As you know the contrail data model is a graph with resources 
>> connected
>>  >>          to each others with parent or ref links so it felt natural to 
>> use a
>>  >>          graph db to process the config DB. We choose the tinkerpop 
>> stack[1]
>>  >>          that
>>  >>          provide a language to traverse graphs: gremlin.
>>  >>
>>  >>          You will find the different tools we worked on the repo
>>  >>          https://github.com/eonpatapon/contrail-gremlin.
>>  >>
>>  >>          We also provide a simple to use docker image to run the 
>> consistency
>>  >>          checks[2] we have. It's a good entrypoint to discover the 
>> project. More
>>  >>          info at: 
>> https://github.com/eonpatapon/contrail-gremlin/tree/master/
>>  >>          docker.
>>  >>
>>  >>          If you have any comments or feedback, don't hesitate
>>  >>
>>  >>          Thanks
>>  >>
>>  >>          Jean-Philippe
>>  >>
>>  >>          [1] http://tinkerpop.apache.org/
>>  >>          [2] https://github.com/eonpatapon/contrail-gremlin/blob/master/
>>  >>          gremlin-checks/checks.groovy
>>  >>          _______________________________________________
>>  >>          Dev mailing list
>>  >>          Dev@lists.opencontrail.org
>>  >>          http://lists.opencontrail.org/mailman/listinfo/
>>  >>          dev_lists.opencontrail.org
>>  >>
>>  >>      ,
>>  >>
>>  >>      _______________________________________________
>>  >>      Dev mailing list
>>  >>      Dev@lists.opencontrail.org
>>  >>      
>> http://lists.opencontrail.org/mailman/listinfo/dev_lists.opencontrail.org

_______________________________________________
Dev mailing list
Dev@lists.opencontrail.org
http://lists.opencontrail.org/mailman/listinfo/dev_lists.opencontrail.org

Reply via email to