<!-- 
RSS generated by JIRA (9.4.2#940002-sha1:46d1a51de284217efdcb32434eab47a99af2938b) at Mon Feb 12 10:14:40 CET 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>Magnolia - Issue tracker</title>
    <link>https://jira.magnolia-cms.com</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-uk</language>    <build-info>
        <version>9.4.2</version>
        <build-number>940002</build-number>
        <build-date>19-01-2023</build-date>
    </build-info>


<item>
            <title>[MSG-4] Too many messages render Magnolia temporarily unusable</title>
                <link>https://jira.magnolia-cms.com/browse/MSG-4</link>
                <project id="17485" key="MSG">Messages</project>
                    <description>&lt;h2&gt;&lt;a name=&quot;Stepstoreproduce&quot;&gt;&lt;/a&gt;Steps to reproduce&lt;/h2&gt;
&lt;ol&gt;
	&lt;li&gt;Register 7000 users via the PUR-Module&lt;/li&gt;
	&lt;li&gt;Send about 500 Messages via info.magnolia.ui.framework.message.MessagesManager.broadcastMessage(Message)&lt;/li&gt;
&lt;/ol&gt;


&lt;h3&gt;&lt;a name=&quot;Expectedresults&quot;&gt;&lt;/a&gt;Expected results&lt;/h3&gt;

&lt;p&gt;Magnolia should still be running normally.&lt;/p&gt;
&lt;h3&gt;&lt;a name=&quot;Actualresults&quot;&gt;&lt;/a&gt;Actual results&lt;/h3&gt;

&lt;p&gt;During startup (for about half an hour) and when a User interacts with the messages workspace (also for about 10-30 minutes), the author is completely unresponsive.&lt;/p&gt;
&lt;h3&gt;&lt;a name=&quot;Workaround&quot;&gt;&lt;/a&gt;Workaround&lt;/h3&gt;

&lt;p&gt;Script to delete all messages to PUR-Users in the messages workspace.&lt;/p&gt;
&lt;h3&gt;&lt;a name=&quot;Developmentnotes&quot;&gt;&lt;/a&gt;Development notes&lt;/h3&gt;

&lt;p&gt;A colleague wrote a module that daily sends messages via broadcastMessage to all users. This might be a mistake, but in my opinion it &#160;should generally not be possible to send messages to PUR-Users. Also the messages workspace is never being cleaned up. It would be nice to have at least the possibility to configure that messages older than a certain date are being deleted or if there are a million messages in the workspace they will be cleaned up automatically.&#160;&lt;/p&gt;</description>
                <environment></environment>
        <key id="140204">MSG-4</key>
            <summary>Too many messages render Magnolia temporarily unusable</summary>
                <type id="1" iconUrl="https://jira.magnolia-cms.com/secure/viewavatar?size=xsmall&amp;avatarId=10883&amp;avatarType=issuetype">Bug</type>
                                            <priority id="6" iconUrl="https://jira.magnolia-cms.com/images/icons/priorities/neutral.gif">Neutral</priority>
                        <status id="10433" iconUrl="https://jira.magnolia-cms.com/images/icons/statuses/generic.png" description="This issue has been evaluated by development and accepted to be planned in.">Accepted</status>
                    <statusCategory id="2" key="new" colorName="default"/>
                                    <resolution id="-1">Unresolved</resolution>
                                        <assignee username="-1">Unassigned</assignee>
                                    <reporter username="marc.johnen">Marc Johnen</reporter>
                        <labels>
                            <label>dx-core-6.3</label>
                    </labels>
                <created>Thu, 12 Oct 2023 10:58:19 +0200</created>
                <updated>Mon, 29 Jan 2024 13:33:11 +0100</updated>
                                                                                <due></due>
                            <votes>0</votes>
                                    <watches>3</watches>
                                                                                                                <comments>
                            <comment id="381040" author="jayala" created="Tue, 17 Oct 2023 15:53:02 +0200"  >&lt;p&gt;Hi Mark,&lt;/p&gt;

&lt;p&gt;Thanks for reporting your feedback. Meanwhile the fix is implemented, you could &lt;a href=&quot;https://docs.magnolia-cms.com/product-docs/6.2/Modules/List-of-modules/Scheduler-module.html&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;schedule a cron job&lt;/a&gt; so it executes the &lt;a href=&quot;https://docs.magnolia-cms.com/product-docs/6.2/Developing/Commands.html&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;command&lt;/a&gt; that cleans messages. Find below a sample of script that removes messages for a given user.&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
&lt;span class=&quot;code-keyword&quot;&gt;import&lt;/span&gt; info.magnolia.context.MgnlContext;
&lt;span class=&quot;code-keyword&quot;&gt;import&lt;/span&gt; javax.jcr.Session;
&lt;span class=&quot;code-keyword&quot;&gt;import&lt;/span&gt; javax.jcr.Node;
&lt;span class=&quot;code-keyword&quot;&gt;import&lt;/span&gt; javax.jcr.NodeIterator;
 
def removeMessages(username) {
    &lt;span class=&quot;code-keyword&quot;&gt;try&lt;/span&gt; {
        Session session = MgnlContext.getJCRSession(&lt;span class=&quot;code-quote&quot;&gt;&quot;messages&quot;&lt;/span&gt;);
        path = &lt;span class=&quot;code-quote&quot;&gt;&quot;/&quot;&lt;/span&gt; + username;
        Node usertree = session.getNode(path);
        NodeIterator childrenIterator = usertree.getNodes();
 
        &lt;span class=&quot;code-keyword&quot;&gt;while&lt;/span&gt; (childrenIterator.hasNext()) {
            Node node = childrenIterator.nextNode();
            path = node.getPath();
            println &lt;span class=&quot;code-quote&quot;&gt;&quot;about to remove ${path} item&quot;&lt;/span&gt;;
            session.removeItem(path);             
        }
        session.save();
        println &lt;span class=&quot;code-quote&quot;&gt;&quot;messages of ${username} removed&quot;&lt;/span&gt;;
 
    } &lt;span class=&quot;code-keyword&quot;&gt;catch&lt;/span&gt; (Exception e) {
        println e;
    }
}
 
&lt;span class=&quot;code-comment&quot;&gt;//example of usage
&lt;/span&gt;removeMessages(&lt;span class=&quot;code-quote&quot;&gt;&quot;superuser&quot;&lt;/span&gt;);
 &lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Hope that helps. Don&apos;t hesitate in opening a &lt;a href=&quot;https://docs.magnolia-cms.com/product-docs/6.2/Support.html&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;support ticket&lt;/a&gt; in case you need further support.&lt;/p&gt;

&lt;p&gt;Regards,&lt;br/&gt;
Jonathan.&lt;/p&gt;</comment>
                            <comment id="381054" author="marc.johnen" created="Tue, 17 Oct 2023 16:24:16 +0200"  >&lt;p&gt;Thank you&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                            <customfield id="customfield_14166" key="com.okapya.jira.checklist:checklist">
                        <customfieldname>Acceptance criteria</customfieldname>
                        <customfieldvalues>
                            
        <checklist>
        <![CDATA[
                            




                
                                    <div class="o-completion" style="display: flex; flex-shrink: 0;"><span  class="aui-lozenge aui-lozenge-complete" style="font-size: 12px; font-weight: normal; display: flex; flex-direction: row; align-items: center;" ><span style="padding-right: 4px; vertical-align: middle;"><svg width="15" height="15" viewBox="0 0 15 15" xmlns="http://www.w3.org/2000/svg" fill="white"><path clip-rule="evenodd" d="m10.41037,3.42544l-7.86501,0c-0.72395,0 -1.31084,0.58688 -1.31084,1.31084l0,7.86508c0,0.7239 0.58689,1.3108 1.31084,1.3108l7.86501,0c0.724,0 1.3109,-0.5869 1.3109,-1.3108l0,-7.86508c0,-0.72396 -0.5869,-1.31084 -1.3109,-1.31084zm-7.86501,-0.65542c-1.08593,0 -1.96626,0.88032 -1.96626,1.96626l0,7.86508c0,1.0859 0.88033,1.9662 1.96626,1.9662l7.86501,0c1.086,0 1.9663,-0.8803 1.9663,-1.9662l0,-7.86508c0,-1.08594 -0.8803,-1.96626 -1.9663,-1.96626l-7.86501,0z" fill-rule="evenodd"/><path d="m5.09049,10.18526l-1.82767,-1.82766l-0.78479,0.78479l2.61246,2.61246l5.38758,-5.38754l-0.78483,-0.78479l-4.60275,4.60274z"/></svg></span><span>Empty</span></span></div>
                        ]]>
    </checklist>


                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10111" key="com.atlassian.jira.toolkit:reporterdomain">
                        <customfieldname>Company</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>johnen.biz</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_10031" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of First Response</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Tue, 17 Oct 2023 15:53:02 +0200</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_12730" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_14151" key="com.atlassian.jira.toolkit:message">
                        <customfieldname>Docu info</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_12130" key="com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes">
                        <customfieldname>Documentation update required</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="13300"><![CDATA[Yes]]></customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                    <customfield id="customfield_10246" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>MAGNOLIA-9057</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10061" key="com.atlassian.jira.toolkit:lastusercommented">
                        <customfieldname>Last comm is not jira-dev</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>true</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10071" key="com.atlassian.jira.toolkit:lastupdaterorcommenter">
                        <customfieldname>Last participant</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>mduerig</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_13136" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            16 weeks, 5 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                            <customfield id="customfield_10020" key="com.atlassian.jira.toolkit:attachments">
                        <customfieldname>Number of attachments</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10150" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname>Number of comments</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10011" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>jayala</customfieldvalue>
            <customfieldvalue>marc.johnen</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10833" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|y00cuw:if</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10244" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>9223372036854775807</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_14145" key="com.intenso.jira.issue-templates:issue-templates-customfield">
                        <customfieldname>Template</customfieldname>
                        <customfieldvalues>
                            

    <customfieldvalue>Bug template</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_15131" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Time in Discovery</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_13933" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Urgency (resolution)</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="15724"><![CDATA[Normal]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                </customfields>
    </item>
</channel>
</rss>