Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Zotero integration server locks up when interacting with a rogue client (in my case it is a Zotero LibreOffice Plugin) #1866

Closed
kjambunathan opened this issue Aug 5, 2020 · 4 comments

Comments

@kjambunathan
Copy link

The Zip File below contains

  1. Debug log on the Zotero side.
  2. Debug log on the LibreOffice Plugin side.
  3. Wireshark packet capture.

D1485439288.zip

If you look at the Wireshark capture, you will see that the last tcp stream shows that the client is sending a Zotero Refresh but the server is not responding.

Transmission Control Protocol, Src Port: 23116, Dst Port: 39806, Seq: 1, Ack: 18, Len: 0

.......	"refresh"

The fact that the server is seeing the refresh, but refusing to respond--this is a bug--is confirmed by server-side logs

(3)(+0000038): LibreOfficePlugin: Read 0 "refresh"

(3)(+0000009): Integration: Request already in progress; not executing OpenOffice refresh

Now, look at the preceding TCP packet stream. You will see that the LibreOffice-side client didn't return a document ID for the server's request. (Agreed that LibreOffice-client is acting rogue here). But that doesn't mean that Zotero locks up for all new integration requests.

Transmission Control Protocol, Src Port: 39800, Dst Port: 23116, Seq: 18, Ack: 46, Len: 0
.......	"refresh".......%["Application_getActiveDocument",[3]]

I wonder if there is a way for the Zotero server to recover from locking up for future client requests. (I tried resetting the TCP-connection on the LibreOffice-side. You can see that the handshake happens on the new TCP client port. But that doesn't seem to help)

The client is acting in a rogue-way--I will take this issue separately with Zotero LibreOffice team--but I would expect the server to be able to recover from client's fault and start all over again from clean state.


READ THIS BEFORE CREATING AN ISSUE

Zotero does not use GitHub Issues for bug reports or feature requests.

Please post all such requests to the Zotero Forums at https://forums.zotero.org, where Zotero developers and many others can help. For confirmed bugs or agreed-upon changes, Zotero developers will create new issues in the relevant repositories.

See https://www.zotero.org/support/zotero_support for more information on how Zotero support works.

@kjambunathan
Copy link
Author

kjambunathan commented Aug 5, 2020

$ uname -a
Linux debian 5.7.0-2-amd64 #1 SMP Debian 5.7.10-1 (2020-07-26) x86_64 GNU/Linux
Zotero-5.0.88_linux-x86_64.tar
Zotero_OpenOffice_Integration.oxt is 5.0.23.

 /Downloads$ dpkg -l | grep libreoffice
ii  liblibreoffice-java                               1:7.0.0~rc2-1                      all          LibreOffice UNO runtime environment -- Java library
ii  libobasis7.0-libreofficekit-data                  7.0.0.3-3                          amd64        Libreofficekit data files for LibreOffice 7.0 .0.3
ii  libreoffice7.0                                    7.0.0.3-3                          amd64        Brand module for LibreOffice 7.0 .0.3
ii  libreoffice7.0-base                               7.0.0.3-3                          amd64        Base brand module for LibreOffice 7.0 .0.3
ii  libreoffice7.0-calc                               7.0.0.3-3                          amd64        Calc brand module for LibreOffice 7.0 .0.3
ii  libreoffice7.0-debian-menus                       7.0.0-3                            all          LibreOffice 7.0 desktop integration
ii  libreoffice7.0-dict-en                            7.0.0.3-3                          amd64        En dictionary for LibreOffice 7.0 .0.3
ii  libreoffice7.0-dict-es                            7.0.0.3-3                          amd64        Es dictionary for LibreOffice 7.0 .0.3
ii  libreoffice7.0-dict-fr                            7.0.0.3-3                          amd64        Fr dictionary for LibreOffice 7.0 .0.3
ii  libreoffice7.0-draw                               7.0.0.3-3                          amd64        Draw brand module for LibreOffice 7.0 .0.3
ii  libreoffice7.0-en-us                              7.0.0.3-3                          amd64        Brand language module for LibreOffice 7.0 .0.3
ii  libreoffice7.0-impress                            7.0.0.3-3                          amd64        Impress brand module for LibreOffice 7.0 .0.3
ii  libreoffice7.0-math                               7.0.0.3-3                          amd64        Math brand module for LibreOffice 7.0 .0.3
ii  libreoffice7.0-ure                                7.0.0.3-3                          amd64        UNO Runtime Environment .0.3
ii  libreoffice7.0-writer                             7.0.0.3-3                          amd64        Writer brand module for LibreOffice 7.0 .0.3

The LibreOffice integration client that I am using is dirty, in the sense that I have some (experimentals) changes over and top of the official releases. I can reproduce this issue at will.

(They were all downloaded within the last week)

@kjambunathan
Copy link
Author

The roguness of the client is limited to it not responding to Application_getActiveDocument request. This I believe is happening because of a LibreOffice Service thread locking up. (I suspect a deadlock). (I think) But this detail about the client's behaviour shouldn't be of any concern--A client's `documentID' response could have been lost (or delayed) due to network conditions. Whatever the case, the integration server shouldn't lock up and be robust enough to service subsequent requests (from the same or new clients).

@adomasven
Copy link
Member

adomasven commented Aug 5, 2020

As per the issue note that you left in your initial comment and then still ignored for some reason:

Zotero does not use GitHub Issues for bug reports or feature requests.

See my response on Zotero Forums

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

2 participants