[jira] [Commented] (JAMES-3451) james 3.5.0 OutOfMemoryError

2020-11-21 Thread Simon Levesque (Jira)


[ 
https://issues.apache.org/jira/browse/JAMES-3451?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17236760#comment-17236760
 ] 

Simon Levesque commented on JAMES-3451:
---

I also use JPA with MariaDB and I have to restart daily because of these memory 
leaks. I fixed some in the past (JAMES-3026), but still, it happens.

This is the only project I know that uses OpenJPA. For all the other projects 
where I use JPA, I use Hibernate and it is very stable. I wonder how big of a 
change it would be to switch to Hibernate and if that could solve all these 
issues.

> james 3.5.0 OutOfMemoryError
> 
>
> Key: JAMES-3451
> URL: https://issues.apache.org/jira/browse/JAMES-3451
> Project: James Server
>  Issue Type: Bug
>  Components: mailbox
>Affects Versions: 3.5.0
> Environment: aliyun linux & mysql 8 & jpa-guice 
>Reporter: owenzhu
>Priority: Major
> Attachments: bigobject.png, thread.png
>
>
> database: mysql8
> platform: aliyun linux 
> jvm params: -Xms128m -Xmx2560m 
> When I run the James for a long time, the james server used more and more 
> heap memory, eventually it runs out of memory  and refuse to receive email. 
> only restart the james will work.
> java.lang.OutOfMemoryError: Java heap spacejava.lang.OutOfMemoryError: Java 
> heap space at com.mysql.jdbc.MysqlIO.nextRowFast(MysqlIO.java:2173) at 
> com.mysql.jdbc.MysqlIO.nextRow(MysqlIO.java:1992) at 
> com.mysql.jdbc.MysqlIO.readSingleRowSet(MysqlIO.java:3413) at 
> com.mysql.jdbc.MysqlIO.getResultSet(MysqlIO.java:471) at 
> com.mysql.jdbc.MysqlIO.readResultsForQueryOrUpdate(MysqlIO.java:3115) at 
> com.mysql.jdbc.MysqlIO.readAllResults(MysqlIO.java:2344) at 
> com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2739) at 
> com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2486) at 
> com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1858) 
> at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1966) 
> at 
> org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:302)
>  at 
> org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingPreparedStatement.executeQuery(LoggingConnectionDecorator.java:1169)
>  at 
> org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:300)
>  at 
> org.apache.openjpa.jdbc.kernel.JDBCStoreManager$CancelPreparedStatement.executeQuery(JDBCStoreManager.java:1866)
>  at 
> org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:290)
>  at org.apache.openjpa.jdbc.sql.SelectImpl.executeQuery(SelectImpl.java:530) 
> at org.apache.openjpa.jdbc.sql.SelectImpl.execute(SelectImpl.java:455) at 
> org.apache.openjpa.jdbc.sql.SelectImpl.execute(SelectImpl.java:422) at 
> org.apache.openjpa.jdbc.sql.LogicalUnion$UnionSelect.execute(LogicalUnion.java:472)
>  at org.apache.openjpa.jdbc.sql.LogicalUnion.execute(LogicalUnion.java:254) 
> at org.apache.openjpa.jdbc.sql.LogicalUnion.execute(LogicalUnion.java:243) at 
> org.apache.openjpa.jdbc.kernel.SelectResultObjectProvider.open(SelectResultObjectProvider.java:95)
>  at 
> org.apache.openjpa.lib.rop.EagerResultList.(EagerResultList.java:36) at 
> org.apache.openjpa.kernel.QueryImpl.toResult(QueryImpl.java:1311) at 
> org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:1062) at 
> org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:912) at 
> org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:843) at 
> org.apache.openjpa.kernel.DelegatingQuery.execute(DelegatingQuery.java:601) 
> at org.apache.openjpa.persistence.QueryImpl.execute(QueryImpl.java:297) at 
> org.apache.openjpa.persistence.QueryImpl.getResultList(QueryImpl.java:314) at 
> org.apache.james.mailbox.jpa.mail.JPAMessageMapper.findMessagesInMailbox(JPAMessageMapper.java:421)
>  at 
> org.apache.james.mailbox.jpa.mail.JPAMessageMapper.findAsList(JPAMessageMapper.java:113)
> I used jProfile to parse the dump file and found that many transactions were 
> waiting.See the attached screenshot for details.
> In addition, I will find the following error in the log, I don't know whether 
> it is the cause of OOM, ApplicableFlags is null in debug :
> 2020-11-17 21:41:00.390 [ERROR] [elastic-1226] 
> (o.a.j.i.p.base.SelectedMailboxImpl:367) - applicableFlags is null, 
> boxId=130656, mail=udysk@88mail.vip2020-11-17 21:41:00.390 [ERROR] 
> [elastic-1226] (o.a.j.i.p.base.SelectedMailboxImpl:367) - applicableFlags is 
> null, boxId=130656, mail=udysk@88mail.vip2020-11-17 21:41:00.391 [ERROR] 
> [elastic-1226] (o.a.j.m.e.delivery.InVmEventDelivery:71) - Error while 
> processing listenerjava.lang.RuntimeException: java.lang.NullPointerException 
> at 
> 

[jira] [Commented] (JAMES-3452) Implement Identity/get

2020-11-21 Thread Benoit Tellier (Jira)


[ 
https://issues.apache.org/jira/browse/JAMES-3452?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17236628#comment-17236628
 ] 

Benoit Tellier commented on JAMES-3452:
---

https://github.com/linagora/james-project/pull/4062 contributes this...

> Implement Identity/get
> --
>
> Key: JAMES-3452
> URL: https://issues.apache.org/jira/browse/JAMES-3452
> Project: James Server
>  Issue Type: Sub-task
>Reporter: Benoit Tellier
>Priority: Major
>
> Why: This is required by some third party clients to discover the mail 
> address they can use, and which identityId to position on there email 
> submissions.
> How:
> Implement Identity/get. Only retrieve all is implemented.
> id is a hash of the email address.
> Use CanSendFrom API to broadcast the email addresses the client can use.
> Add an identityId in the EmailSubmission object. 
> Example of query
> {code:java}
> {
>   "using": ["urn:ietf:params:jmap:core", "urn:ietf:params:jmap:mail"],
>   "methodCalls": [[
> "Identity/get",
> {
>   "accountId": 
> "29883977c13473ae7cb7678ef767cbfbaffc8a44a6e463d971d23a65c1dc4af6",
>   "ids": null
> },
> "c1"]]
> }
> Will respond
> {
> "accountId": 
> "29883977c13473ae7cb7678ef767cbfbaffc8a44a6e463d971d23a65c1dc4af6",
> "state": "01",
> "list": [
> {
> "id": 
> "29883977c13473ae7cb7678ef767cbfbaffc8a44a6e463d971d23a65c1dc4af6",
> "name": "b...@domain.tld",
> "email": "b...@domain.tld",
> "mayDelete": false
> },
> {
> "id": 
> "725cfddc2c1905fefa6b8c3a6ab5dd9f8ba611c4d7772cf066f69cfd2ec23832",
> "name": "b...@domain-alias.tld",
> "email": "b...@domain-alias.tld",
> "mayDelete": false
> },
> {
> "id": 
> "6310e0a86aedaad878f634a5ff5c2cb8bb3c2401319305ef3272591ebcdc6cb4",
> "name": "bob-al...@domain.tld",
> "email": "bob-al...@domain.tld",
> "mayDelete": false
> },
> {
> "id": 
> "62844b5cd203bcb86cb590355fc509773ef1972ce8457b13a7d55d99a308c8f6",
> "name": "bob-al...@domain-alias.tld",
> "email": "bob-al...@domain-alias.tld",
> "mayDelete": false
> }
> ]
> }
> {code}
> Identity/set & Identity/changes will not be implemented.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org



[jira] [Created] (JAMES-3452) Implement Identity/get

2020-11-21 Thread Benoit Tellier (Jira)
Benoit Tellier created JAMES-3452:
-

 Summary: Implement Identity/get
 Key: JAMES-3452
 URL: https://issues.apache.org/jira/browse/JAMES-3452
 Project: James Server
  Issue Type: Sub-task
Reporter: Benoit Tellier


Why: This is required by some third party clients to discover the mail address 
they can use, and which identityId to position on there email submissions.

How:

Implement Identity/get. Only retrieve all is implemented.

id is a hash of the email address.

Use CanSendFrom API to broadcast the email addresses the client can use.

Add an identityId in the EmailSubmission object. 

Example of query


{code:java}
{
  "using": ["urn:ietf:params:jmap:core", "urn:ietf:params:jmap:mail"],
  "methodCalls": [[
"Identity/get",
{
  "accountId": 
"29883977c13473ae7cb7678ef767cbfbaffc8a44a6e463d971d23a65c1dc4af6",
  "ids": null
},
"c1"]]
}

Will respond

{
"accountId": 
"29883977c13473ae7cb7678ef767cbfbaffc8a44a6e463d971d23a65c1dc4af6",
"state": "01",
"list": [
{
"id": 
"29883977c13473ae7cb7678ef767cbfbaffc8a44a6e463d971d23a65c1dc4af6",
"name": "b...@domain.tld",
"email": "b...@domain.tld",
"mayDelete": false
},
{
"id": 
"725cfddc2c1905fefa6b8c3a6ab5dd9f8ba611c4d7772cf066f69cfd2ec23832",
"name": "b...@domain-alias.tld",
"email": "b...@domain-alias.tld",
"mayDelete": false
},
{
"id": 
"6310e0a86aedaad878f634a5ff5c2cb8bb3c2401319305ef3272591ebcdc6cb4",
"name": "bob-al...@domain.tld",
"email": "bob-al...@domain.tld",
"mayDelete": false
},
{
"id": 
"62844b5cd203bcb86cb590355fc509773ef1972ce8457b13a7d55d99a308c8f6",
"name": "bob-al...@domain-alias.tld",
"email": "bob-al...@domain-alias.tld",
"mayDelete": false
}
]
}
{code}

Identity/set & Identity/changes will not be implemented.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org