b2ihealthcare/snow-owl

Compare endpoint returns empty diff

ivelina-yordanova opened this issue · 4 comments

Describe the bug

We have 2n environments with different setup and in one the /compare endpoint works as expected whereas in the other it always returns an empty diff.

The differences between the 2 environments are the following:

  • env 1) has an increased replica count ( 1 ) and SNOMED International is imported only as a snapshot in MAIN, where after the import we created a version branch, then imported SNOMED UK and a custom extension using the new extensionOf feature.
  • env 2) has the default replica count of 0 and SNOMED International is imported in FULL in MAIN with createVersions=true (no manual branch/version creation). then SNOMED UK and out extension is imported similarly to env 1 using the extensionOf feature.

So, in env 2), the /compare endpoint works like a charm, whereas it does not work at all in env 1)

It's probably worth also noting that the import of an international snapshot was enabled only after commenting out a validation in SnomedRf2ImportRequest.java as suggested here

To Reproduce

I guess the way to reproduce it is to:

  • import a snapshot of SNOMED International (version 2018-07-31), not sure if importing a snapshot of UK and another codeSystem is crucial for this bug.
  • increase the replica count

(Those are the 2 differences, we made sure both have the same version of snowowl - it's the latest of your 7.x branch at the time - commit 7640094 )

Expected behavior
Expect the endpoint to behave the same in both setups.

Version

  • Snow Owl Version: commit 7640094
  • Elasticsearch Version (external): external - ES: 7.1.1

Additional context
N/A

Hi @cmark,

In the latest release 7.7.0 this original issue seems to have been fixed, thanks it was very useful.

However, now this same endpoint is behaving odd in a different way - it returns empty diff at random.

Steps to reproduce:

  • create a branch
  • create a concept in that branch
  • update branch
  • compare
    loop over these steps few times and at random some of the compare responses contain empty diff. I am wondering if there might be any timing issue here that I cannot detect given I am not too familiar with the way those requests are executed.

Do you have any idea what might cause this unpredictable behaviour? (SIde note: the concepts are for sure created and the branch is updated)

Thanks,
Ivelina

cmark commented

Hi @ivelina-yordanova,

I'm glad the fix worked for you.
May I ask for information about your current setup on top of replica count? Any specific Elasticsearch configuration, other node types, anything else? Thank you!

In the meantime, I'll investigate why the compare endpoint behaves this way.

Cheers,
Mark

stale commented

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

cmark commented

Hi @ivelina-yordanova,

We were unable to identify any issues around the branch compare functionality that would indicate a behavior like this. We will close this issue now. Feel free to reopen this one or create a new one if you still experience the issue.

Cheers,
Mark