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

fix issues #48 and #72, improve performance #96

Closed
wants to merge 5,858 commits into from

Conversation

koledas
Copy link

@koledas koledas commented Mar 26, 2020

guusdk and others added 30 commits February 16, 2013 19:32
OF-621: Fix potential NPE.


git-svn-id: http://svn.igniterealtime.org/svn/repos/openfire/trunk@13497 b35dd754-fafc-0310-a699-88a17e54d16e
OF-621: Fix potential NPE.


git-svn-id: http://svn.igniterealtime.org/svn/repos/openfire/trunk@13498 b35dd754-fafc-0310-a699-88a17e54d16e
…includes better debug logging for JIDs (TINDER-67) as well as a new utility method that helps to build valid bare JID instances (TINDER-68). The latter should help prevent issues like OF-624.

git-svn-id: http://svn.igniterealtime.org/svn/repos/openfire/trunk@13510 b35dd754-fafc-0310-a699-88a17e54d16e
…includes better debug logging for JIDs (TINDER-67) as well as a new utility method that helps to build valid bare JID instances (TINDER-68). The latter should help prevent issues like OF-624.

git-svn-id: http://svn.igniterealtime.org/svn/repos/openfire/trunk@13511 b35dd754-fafc-0310-a699-88a17e54d16e
…hat helps to prevent generating illegal JIDs.

git-svn-id: http://svn.igniterealtime.org/svn/repos/openfire/trunk@13513 b35dd754-fafc-0310-a699-88a17e54d16e
…gh receivedAnswer() but are not of IQ.Type.result by deeming these packets as invalid (which they are).

It seems that there are some entities that accounce protocol/caps support but do not allow disco#info queries (maybe to avoid information leaks). They send an error IQ instead as rely to disco#info. This causes EntityCapabilitiesManager to throw an NPE:

2013.02.26 13:16:33 org.jivesoftware.openfire.IQRouter - Error proces
sing answer of remote entity. Answer: <iq from="jdev@conference.jabbe
r.org/XXX" to="freakempire.de" type="error" id="204-29"><error c
ode="405" type="cancel"><not-allowed xmlns="urn:ietf:params:xml:ns:xm
pp-stanzas"/></error></iq>
java.lang.NullPointerException
        at org.jivesoftware.openfire.entitycaps.EntityCapabilitiesMan
ager.getIdentitiesFrom(EntityCapabilitiesManager.java:336)
        at org.jivesoftware.openfire.entitycaps.EntityCapabilitiesMan
ager.generateVerHash(EntityCapabilitiesManager.java:237)

git-svn-id: http://svn.igniterealtime.org/svn/repos/openfire/trunk@13525 b35dd754-fafc-0310-a699-88a17e54d16e
…: Abort when EOF is encounterd or when more then 100 invalid CodePoints are read.

git-svn-id: http://svn.igniterealtime.org/svn/repos/openfire/trunk@13537 b35dd754-fafc-0310-a699-88a17e54d16e
guusdk and others added 20 commits January 28, 2020 15:30
… to be returned when only a count is requested.

Not querying the database for messages if you're requesting zero messages to be returned makes sense from a performance perspective. Additionally, the existing code trips what appears to be a bug in HSQLDB which appears to return all rows (instead of no rows) if you end a query with "LIMIT 0".
…h queries.

Change the name of the field used for text searches to what's defined in https://xmpp.org/extensions/inbox/fulltext.html
…ields to be used.

The MAM search should allow non-standard fields known to be used by other implementations, when the standard equivalent is not used.
This commit should not introduce a functional change. It applies the same split that's applied to the Lucene-based retrieval, that splits off the arguments that define the resultset from the arguments that define the page from the resultset to return.
This fixes a problem where, when retrieved from the database (instead of Lucene) the 'total' count of items in the result set was reported with an incorrect value.
The last few commits were based on a branch, that got rebased upon the changes that were in igniterealtime#77

Somewhere along the line in my branch, variable names changed. This commit sets the record straight.
Apparently, something occasionally corrupts the database table that stores the RRDS holding statistics. When one row is corrupt, it affects the functionality of all statistics.

To work around this issue, this commit removes all affected rows upon start of the plugin. This will cause the code to recreate the row with a valid structure, and re-enables usage of all other statistics.
When querying the Lucene index, ensure that the order of messages is old-to-new, even when paging backwards through a result set.
Some clients use a data form field that is unrecognized. Up until now, the monitoring plugin has ignored those fields. This can lead to unexpected results, as the client (and end user) assume that a certain limitation is applied to the search, while in fact, it is not.

The plugin should return an error when unsupported fields are used, instead of silently ignoring them.

This behavior can be configured by using the 'monitoring.search.allow-unrecognized-fields' property.
Added properties:
- `archive.settings.logapi.enabled` to allow configuration of exposure of the API that is used to display logs from public chatrooms (defaults to 'false')
- `monitoring.search.allow-unrecognized-fields` to return an error or silently ignore MAM queries with unrecognized fields (defaults to 'false', triggering an error)
This commit adds a webpage that uses the API that was added earlier to allow uses to view groupchat logs in their browser.
Fix Issues igniterealtime#48 and igniterealtime#72.
Improve performance load conversations.
Tested on PostgreSQL 11.7, size of DB 7Gb. Client Vacuum-IM 1.3.0.
@DavisR-GitHub
Copy link

DavisR-GitHub commented Jun 18, 2020

Why nobody merges this request?

@guusdk
Copy link
Member

guusdk commented Jun 19, 2020

The change in this PR is rather large, and addresses more than one issue. This makes reviewing more complex. It is generally preferable to create distinct, concise PRs, as that will help reviewers process things faster.

It's understandable that PRs that take a long time to be reviewed can be frustrating. Please do remember that the community consists of volunteers, that sometimes have other priorities.

@DavisR-GitHub
Copy link

@koledas,
May be you could split this request into several small requests?
We really need in these fixes.

@koledas
Copy link
Author

koledas commented Jun 22, 2020

@DavisR-GitHub
Sorry, but why is there such a rush?
You can use this plugin: https://github.com/igniterealtime/openfire-monitoring-plugin/files/4387326/monitoring.zip
And my fork: https://github.com/koledas/openfire-monitoring-plugin
Now it’s hard to remember which change related to which problem. In the future I will create distinct, concise PRs.

@DavisR-GitHub
Copy link

Rush?
Pull request was created 3 month ago and still even did not reviewed...

@guusdk
Copy link
Member

guusdk commented Sep 10, 2020

#72 is now fixed in #123

@akrherz
Copy link
Member

akrherz commented Oct 30, 2020

Sorry, this PR will need to be resubmitted, I was not able to fix it after the repository rewrite to remove unrelated commits.

@akrherz akrherz closed this Oct 30, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet