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

TMP Flaky tests investigation #10626

Open
wants to merge 9 commits into
base: master
Choose a base branch
from
Original file line number Diff line number Diff line change
Expand Up @@ -712,7 +712,10 @@ public void whenTenantIsDeleted_thenDeleteQueues() throws Exception {
savedDifferentTenant = saveTenant(savedDifferentTenant);
TenantId tenantId = differentTenantId;
await().atMost(30, TimeUnit.SECONDS).untilAsserted(() -> {
assertThat(partitionService.getMyPartitions(new QueueKey(ServiceType.TB_RULE_ENGINE, tenantId))).isNotNull();
QueueKey queueKey = new QueueKey(ServiceType.TB_RULE_ENGINE, tenantId);
List<Integer> partitions = partitionService.getMyPartitions(queueKey);
log.error("[{}] partitions: {}", queueKey, partitions);
assertThat(partitions).isNotNull();
});
TopicPartitionInfo tpi = partitionService.resolve(ServiceType.TB_RULE_ENGINE, tenantId, tenantId);
assertThat(tpi.getTenantId()).hasValue(tenantId);
Expand Down
2 changes: 1 addition & 1 deletion application/src/test/resources/application-test.properties
Original file line number Diff line number Diff line change
Expand Up @@ -53,4 +53,4 @@ sql.ttl.audit_logs.ttl=2592000
sql.edge_events.partition_size=168
sql.ttl.edge_events.edge_event_ttl=2592000

server.log_controller_error_stack_trace=false
server.log_controller_error_stack_trace=true
6 changes: 6 additions & 0 deletions application/src/test/resources/logback-test.xml
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,12 @@
<logger name="org.thingsboard.server.service.queue.DefaultTbClusterService" level="ERROR" />
<logger name="org.thingsboard.server.service.security.auth.jwt.settings.DefaultJwtSettingsService" level="ERROR" />


<logger name="org.thingsboard.server.queue.discovery.HashPartitionService" level="TRACE" />
<logger name="org.thingsboard.server.dao.sqlts.insert.sql.SqlPartitioningRepository" level="TRACE" />
<logger name="org.thingsboard.server.dao.sql.JpaPartitionedAbstractDao" level="TRACE" />
<logger name="org.thingsboard.server.service.queue.DefaultTbRuleEngineConsumerService" level="INFO" />

<!-- Coap client context debug for the test scope -->
<!-- <logger name="org.thingsboard.server.transport.coap.client.DefaultCoapClientContext" level="TRACE" />-->

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
import jakarta.persistence.Table;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.hibernate.annotations.Formula;
import org.thingsboard.server.common.data.id.NotificationId;
import org.thingsboard.server.common.data.id.NotificationRequestId;
Expand All @@ -43,6 +44,7 @@
@EqualsAndHashCode(callSuper = true)
@Entity
@Table(name = ModelConstants.NOTIFICATION_TABLE_NAME)
@ToString(callSuper = true)
public class NotificationEntity extends BaseSqlEntity<Notification> {

@Column(name = ModelConstants.NOTIFICATION_REQUEST_ID_PROPERTY, nullable = false)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,25 +15,42 @@
*/
package org.thingsboard.server.dao.sql;

import org.thingsboard.server.dao.model.BaseEntity;
import org.thingsboard.server.dao.util.SqlDao;

import jakarta.persistence.EntityManager;
import jakarta.persistence.PersistenceContext;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.thingsboard.server.common.data.EntityType;
import org.thingsboard.server.dao.model.BaseEntity;
import org.thingsboard.server.dao.sqlts.insert.sql.SqlPartitioningRepository;
import org.thingsboard.server.dao.util.SqlDao;

@SqlDao
@Slf4j
public abstract class JpaPartitionedAbstractDao<E extends BaseEntity<D>, D> extends JpaAbstractDao<E, D> {

@PersistenceContext
private EntityManager entityManager;

@Autowired
private SqlPartitioningRepository partitioningRepository;

@Override
protected E doSave(E entity, boolean isNew) {
createPartition(entity);
if (isNew) {
entityManager.persist(entity);
} else {
entity = entityManager.merge(entity);
if (getEntityType() == EntityType.NOTIFICATION) {
log.trace("Created partition for entity {}. available partitions: {}", entity, partitioningRepository.fetchPartitions("notification"));
}
try {
if (isNew) {
entityManager.persist(entity);
} else {
entity = entityManager.merge(entity);
}
} catch (Throwable t) {
if (getEntityType() == EntityType.NOTIFICATION) {
log.trace("Failed to save {} (isNew {})", entity, isNew, t);
}
throw t;
}
return entity;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ public Tenant saveTenant(Tenant tenant) {
@Override
@Transactional
public Tenant saveTenant(Tenant tenant, Consumer<TenantId> defaultEntitiesCreator) {
log.trace("Executing saveTenant [{}]", tenant);
log.error("Executing saveTenant [{}]", tenant);
tenant.setRegion(DEFAULT_TENANT_REGION);
if (tenant.getTenantProfileId() == null) {
TenantProfile tenantProfile = this.tenantProfileService.findOrCreateDefaultTenantProfile(TenantId.SYS_TENANT_ID);
Expand Down