From f918bc3a86389cbfa3be9cbbb30babf1edc2f8f6 Mon Sep 17 00:00:00 2001 From: Alvaro Vega Date: Mon, 16 Oct 2023 09:12:39 +0200 Subject: [PATCH 1/4] have into account IndexKeySpecsConflict error --- .../iot/cygnus/backends/mongo/MongoBackendImpl.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/cygnus-common/src/main/java/com/telefonica/iot/cygnus/backends/mongo/MongoBackendImpl.java b/cygnus-common/src/main/java/com/telefonica/iot/cygnus/backends/mongo/MongoBackendImpl.java index bacb6f940..1d0767858 100644 --- a/cygnus-common/src/main/java/com/telefonica/iot/cygnus/backends/mongo/MongoBackendImpl.java +++ b/cygnus-common/src/main/java/com/telefonica/iot/cygnus/backends/mongo/MongoBackendImpl.java @@ -215,11 +215,12 @@ public void createIndex(MongoDatabase db, String collectionName, BasicDBObject k try { db.getCollection(collectionName).createIndex(keys, options); } catch(Exception e) { - if (e.getMessage().contains("IndexOptionsConflict")) { + if (e.getMessage().contains("IndexOptionsConflict") || + e.getMessage().contains("IndexKeySpecsConflict")) { db.getCollection(collectionName).dropIndex(options.getName()); createIndex(db, collectionName, keys, options); } else { - LOGGER.warn("Error in collection " + collectionName + " creating index ex=" + e.getMessage()); + LOGGER.info("Error in collection " + collectionName + " creating index ex=" + e.getMessage()); } } // try catch } // createIndex From 63d9a2ff60c3c1dbaa9cf117e68c1fdaabf9f0ce Mon Sep 17 00:00:00 2001 From: Alvaro Vega Date: Mon, 16 Oct 2023 12:23:34 +0200 Subject: [PATCH 2/4] update CNR --- CHANGES_NEXT_RELEASE | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGES_NEXT_RELEASE b/CHANGES_NEXT_RELEASE index 9fa5ef352..c75651d10 100644 --- a/CHANGES_NEXT_RELEASE +++ b/CHANGES_NEXT_RELEASE @@ -1,3 +1,4 @@ +- [cygnus-common] [MongoDB] fix error about reindex when datamodel changed - [cygnus-common] [Arcgis] fix url quoted based on uniqueFieldType (#2311) - [cygnus-common] [SQL] Add Primary Key on Timestamp to Error Log table (#2302) - [cygnus-common] Upgrade gson dependency from 2.6.2 to 2.10.1 From ec0e2d131914cfb48fccca627d013af2a90a31bc Mon Sep 17 00:00:00 2001 From: Alvaro Vega Date: Tue, 17 Oct 2023 12:10:11 +0200 Subject: [PATCH 3/4] Update cygnus-common/src/main/java/com/telefonica/iot/cygnus/backends/mongo/MongoBackendImpl.java MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Fermín Galán Márquez --- .../telefonica/iot/cygnus/backends/mongo/MongoBackendImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cygnus-common/src/main/java/com/telefonica/iot/cygnus/backends/mongo/MongoBackendImpl.java b/cygnus-common/src/main/java/com/telefonica/iot/cygnus/backends/mongo/MongoBackendImpl.java index 1d0767858..14664d212 100644 --- a/cygnus-common/src/main/java/com/telefonica/iot/cygnus/backends/mongo/MongoBackendImpl.java +++ b/cygnus-common/src/main/java/com/telefonica/iot/cygnus/backends/mongo/MongoBackendImpl.java @@ -220,7 +220,7 @@ public void createIndex(MongoDatabase db, String collectionName, BasicDBObject k db.getCollection(collectionName).dropIndex(options.getName()); createIndex(db, collectionName, keys, options); } else { - LOGGER.info("Error in collection " + collectionName + " creating index ex=" + e.getMessage()); + LOGGER.warn("Error in collection " + collectionName + " creating index ex=" + e.getMessage()); } } // try catch } // createIndex From bb6b316efacb40f93b4cae9ea8244a8ce5eff682 Mon Sep 17 00:00:00 2001 From: Alvaro Vega Date: Tue, 17 Oct 2023 12:47:43 +0200 Subject: [PATCH 4/4] Update cygnus-common/src/main/java/com/telefonica/iot/cygnus/backends/mongo/MongoBackendImpl.java MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Fermín Galán Márquez --- .../telefonica/iot/cygnus/backends/mongo/MongoBackendImpl.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/cygnus-common/src/main/java/com/telefonica/iot/cygnus/backends/mongo/MongoBackendImpl.java b/cygnus-common/src/main/java/com/telefonica/iot/cygnus/backends/mongo/MongoBackendImpl.java index 14664d212..9b263e01e 100644 --- a/cygnus-common/src/main/java/com/telefonica/iot/cygnus/backends/mongo/MongoBackendImpl.java +++ b/cygnus-common/src/main/java/com/telefonica/iot/cygnus/backends/mongo/MongoBackendImpl.java @@ -215,6 +215,9 @@ public void createIndex(MongoDatabase db, String collectionName, BasicDBObject k try { db.getCollection(collectionName).createIndex(keys, options); } catch(Exception e) { + // Our guess is: + // IndexOptionsConflict -> when the same index (name and keys) already exits + // IndexKeySpecsConflict -> when an index with the same name but different keys (i.e. DM was changed) already exist if (e.getMessage().contains("IndexOptionsConflict") || e.getMessage().contains("IndexKeySpecsConflict")) { db.getCollection(collectionName).dropIndex(options.getName());