{"push_id":1000299417,"size":18,"distinct_size":18,"ref":"refs/heads/2.x","head":"3c414492be6ddc9275fca3c362e5c29def943e90","before":"09c57f9c897125654e910209627bf97351582667","commits":[{"sha":"a9c49f877d090e858bc7ab1ed5ddcb82eea72c9d","author":{"email":"363eb224f6ff8d3c5163a8805222acbf939a65b3@rtme.net","name":"Sebastian Utz"},"message":"fixed propagation of autoGeneratedId on document creation\n\ncanHaveDuplicates was used as autoGeneratedId and so no DocumentAlreadyExists exception was thrown\n(optimization introduced here:https://github.com/elastic/elasticsearch/commit/f45e6ae3f9643161424a4169d272bfa8588c202e)\neven when the id was not auto generated.","distinct":true,"url":"https://api.github.com/repos/mapr/elasticsearch/commits/a9c49f877d090e858bc7ab1ed5ddcb82eea72c9d"},{"sha":"840af82f5c80b6686b92c144a183b42fede8f6fb","author":{"email":"aa743a0aaec8f7d7a1f01442503957f4d7a2d634@pilato.fr","name":"David Pilato"},"message":"Upgrade Azure Storage client to 4.0.0\n\nWe are using `2.0.0` today but Azure team now recommends:\n\n```xml\n<dependency>\n    <groupId>com.microsoft.azure</groupId>\n    <artifactId>azure-storage</artifactId>\n    <version>4.0.0</version>\n</dependency>\n```\n\nThis new version fix the timeout issues we have seen with azure storage although #15080 adds a timeout support.\nAzure storage client 2.0.0 was not passing correctly this value when it was calling Azure services.\n\nNote that the timeout is a server side timeout and not client side timeout.\nIt means that it will raise only a timeout when:\n\n* upload of blob is complete\n* if azure service is not able to process the blob (and store it) within a given time range.\n\nIn which case it will raise an exception which elasticsearch can deal with:\n\n```\njava.io.IOException\n    at __randomizedtesting.SeedInfo.seed([91BC11AEF16E073F:6886FA5308FCE4D8]:0)\n    at com.microsoft.azure.storage.core.Utility.initIOException(Utility.java:643)\n    at com.microsoft.azure.storage.blob.BlobOutputStream.writeBlock(BlobOutputStream.java:444)\n    at com.microsoft.azure.storage.blob.BlobOutputStream.access$000(BlobOutputStream.java:53)\n    at com.microsoft.azure.storage.blob.BlobOutputStream$1.call(BlobOutputStream.java:388)\n    at com.microsoft.azure.storage.blob.BlobOutputStream$1.call(BlobOutputStream.java:385)\n    at java.util.concurrent.FutureTask.run(FutureTask.java:266)\n    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)\n    at java.util.concurrent.FutureTask.run(FutureTask.java:266)\n    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)\n    at java.lang.Thread.run(Thread.java:745)\nCaused by: com.microsoft.azure.storage.StorageException: Operation could not be completed within the specified time.\n    at com.microsoft.azure.storage.StorageException.translateException(StorageException.java:89)\n    at com.microsoft.azure.storage.core.StorageRequest.materializeException(StorageRequest.java:305)\n    at com.microsoft.azure.storage.core.ExecutionEngine.executeWithRetry(ExecutionEngine.java:175)\n    at com.microsoft.azure.storage.blob.CloudBlockBlob.uploadBlockInternal(CloudBlockBlob.java:1006)\n    at com.microsoft.azure.storage.blob.CloudBlockBlob.uploadBlock(CloudBlockBlob.java:978)\n    at com.microsoft.azure.storage.blob.BlobOutputStream.writeBlock(BlobOutputStream.java:438)\n    ... 9 more\n```\n\nThe following code was used to test this against Azure platform:\n\n```java\npublic void testDumb() throws URISyntaxException, StorageException, IOException, InvalidKeyException {\n    String connectionString = \"MY-AZURE-STRING\";\n\n    CloudStorageAccount storageAccount = CloudStorageAccount.parse(connectionString);\n    CloudBlobClient client = storageAccount.createCloudBlobClient();\n    client.getDefaultRequestOptions().setTimeoutIntervalInMs(1000);\n    CloudBlobContainer container = client.getContainerReference(\"dumb\");\n    container.createIfNotExists();\n    CloudBlockBlob blob = container.getBlockBlobReference(\"blob\");\n\n    File sourceFile = File.createTempFile(\"sourceFile\", \".tmp\");\n\n    try {\n        int fileSize = 10000000;\n\n        byte[] buffer = new byte[fileSize];\n        Random random = new Random();\n        random.nextBytes(buffer);\n\n        logger.info(\"Generate local file\");\n        FileOutputStream fos = new FileOutputStream(sourceFile);\n        fos.write(buffer);\n        fos.close();\n        logger.info(\"End generate local file\");\n\n        FileInputStream fis = new FileInputStream(sourceFile);\n\n        logger.info(\"Start uploading\");\n        blob.upload(fis, fileSize);\n        logger.info(\"End uploading\");\n\n    }\n    finally {\n        if (sourceFile.exists()) {\n            sourceFile.delete();\n        }\n    }\n}\n```\n\nWith 2.0.0, the above code was not raising any exception. With 4.0.0, the exception is now thrown correctly.\n\nThe default timeout is 5 minutes. See https://github.com/Azure/azure-storage-java/blob/master/microsoft-azure-storage/src/com/microsoft/azure/storage/core/Utility.java#L352-L375\n\nCloses #12567.\n\nRelease notes from 2.0.0:\n\n * Removed deprecated table AtomPub support.\n * Removed deprecated constructors which take service clients in favor of constructors which take credentials.\n * Added support for \"Add\" permissions on Blob SAS.\n * Added support for \"Create\" permissions on Blob and File SAS.\n * Added support for IP Restricted SAS and Protocol SAS.\n * Added support for Account SAS to all services.\n * Added support for Minute and Hour Metrics to FileServiceProperties and added support for File Metrics to CloudAnalyticsClient.\n * Removed deprecated startCopyFromBlob() on CloudBlob. Use startCopy() instead.\n * Removed deprecated Credentials and StorageKey classes. Please use the appropriate methods on StorageCredentialsAccountAndKey instead.\n\n * Fixed a bug in table where a select on a non-existent field resulted in a null reference exception if the corresponding field in the TableEntity was not nullable.\n * Fixed a bug in table where JsonParser was automatically closing the response stream before it was completely drained causing socket exhaustion.\n * Fixed a bug in StorageCredentialsAccountAndKey.updateKey(String) which prevented valid keys from being set.\n * Added CloudBlobContainer.listBlobs(final String, final boolean) method.\n * Fixed a bug in blob where using AccessConditions on block blob uploads larger than 64MB done with the upload* methods or block blob uploads done openOutputStream with would fail if the blob did not already exist.\n * Added support for setting a proxy per request. Proxy can be set on an OperationContext instance and will be used when that instance is passed to the request method.\n\n * Added support for SAS to the Azure File service.\n * Added support for Append Blob.\n * Added support for Access Control Lists (ACL) to File Shares.\n * Added support for getting and setting of CORS rules to File service.\n * Added support for ShareStats to File Shares.\n * Added support for copying an Azure File to another Azure File or a Block Blob asynchronously, and aborting Azure File copy operations asynchronously.\n * Added support for copying a Blob to an Azure File asynchronously.\n * Added support for setting a maximum quota property on a File Share.\n * Removed deprecated AuthenticationScheme and its getter and setter. In the future only SharedKey will be used.\n * Removed deprecated getter/setters for all request option properties on the service clients. Please use the default request options getter/setters instead.\n * Removed getSubDirectoryReference() for blob directories and file directories. Use getDirectoryReference() instead.\n * Removed getEntityClass() in TableQuery. Please use getClazzType() instead.\n * Added client-side verification for lease duration and break periods.\n * Deprecated the setters in table for timestamp as this property is only modifiable by the service.\n * Deprecated startCopyFromBlob() on CloudBlob. Use startCopy() instead.\n * Deprecated the Credentials and StorageKey classes. Please use the appropriate methods on StorageCredentialsAccountAndKey instead.\n * Deprecated constructors which take service clients in favor of constructors which take credentials.\n * Fixed a bug where the DateBackwardCompatibility flag was not applied if set on the CloudTableClient default request options.\n * Changed library behavior to retry all exceptions thrown when parsing a response object.\n * Changed behavior to stop removing query parameters passed in with the resource URI if that URI contains a SAS token. Some query parameters such as comp, restype, snapshot and api-version will still be removed.\n * Added support for logging StringToSign to SharedKey and SAS.\n * **Added a connect timeout to prevent hangs when establishing the network connection.**\n * **Made performance enhancements to the BlobOutputStream class.**\n\n * Fixed a bug where maximum execution time was ignored for file, queue, and table services.\n * **Changed the socket timeout to be set to the service side timeout plus 5 minutes when maximum execution time is not set.**\n * **Changed the socket timeout to default to 5 minutes rather than infinite when neither service side timeout or maximum execution time are set.**\n * Fixed a bug where MD5 was calculated for commitBlockList even though UseTransactionalMD5 was set to false.\n * Fixed a bug where selecting fields that did not exist returned an error rather than an EntityProperty with a null value.\n * Fixed a bug where table entities with a single quote in their partition or row key could be inserted but not operated on in any other way.\n\n * Fixed a bug for all listing API's where next() would sometimes throw an exception if hasNext() had not been called even if there were more elements to iterate on.\n * Added sequence number to the blob properties. This is populated for page blobs.\n * Creating a page blob sets its length property.\n * Added support for page blob sequence numbers and sequence number access conditions.\n * Fixed a bug in abort copy where the lease access condition was not sent to the service.\n * Fixed an issue in startCopyFromBlob where if the URI of the source blob contained certain non-ASCII characters they would not be encoded appropriately. This would result in Authorization failures.\n * Fixed a small performance issue in XML serialization.\n * Fixed a bug in BlobOutputStream and FileOutputStream where flush added data to a request pool rather than immediately committing it to the Azure service.\n * Refactored to remove the blob, queue, and file package dependency on table in the error handling code.\n * Added additional client-side logging for REST requests, responses, and errors.\n\nCloses #15976.\n\nBackport of #16084 in 2.x branch","distinct":true,"url":"https://api.github.com/repos/mapr/elasticsearch/commits/840af82f5c80b6686b92c144a183b42fede8f6fb"},{"sha":"b8a288f075886abc660b69c113bd57a05f502d2d","author":{"email":"aa743a0aaec8f7d7a1f01442503957f4d7a2d634@pilato.fr","name":"David Pilato"},"message":"Change docs on \"node client\" to not use an in-memory node\n\nCurrently we suggesting users create a Node (using NodeBuilder in 2.x) to have a client that is capable of keeping up-to-date information. This is generally a bad idea as it means elasticsearch has no control over eg max heap size or gc settings, and is also problematic for users because they must deal with dependency collisions (and in 2.x+ dependencies of elasticsearch itself).\n\nA better alternative, and what we should document, is to run a local elasticsearch server using bin/elasticsearch, and then use the transport client to connect to that local node. This local connection is virtually free, and allows the client code to be completely isolated from the elasticsearch process. Plugins are then also easy to deal with: just install them in elasticsearch as usual.\n\nBackport of #16679 in 2.x branch.","distinct":true,"url":"https://api.github.com/repos/mapr/elasticsearch/commits/b8a288f075886abc660b69c113bd57a05f502d2d"},{"sha":"8d23c38cfe5aaff7907b8c09d8671ce06a672668","author":{"email":"992531bec19101e9308e69893b3169c39fdfdd41@gmail.com","name":"Boaz Leskes"},"message":"Merge pull request #16767 from crate/s/fix-doc-create-autoGeneratedId-propagation\n\nfixed propagation of autoGeneratedId on document creation\r\n\r\ncanHaveDuplicates was used as autoGeneratedId and so no DocumentAlreadyExists exception was thrown (optimization introduced here: f45e6ae) even when the id was not auto generated.","distinct":true,"url":"https://api.github.com/repos/mapr/elasticsearch/commits/8d23c38cfe5aaff7907b8c09d8671ce06a672668"},{"sha":"16461f9a57c83881a9e61060d5b759a1768b6ede","author":{"email":"5244391c75f8a1e5c03ffb5fb81f5ded924b8e44@gmx.at","name":"Dominik Stadler"},"message":"Add note about size being per shard here\n\nIt seems the current note via the comment is too less intrusive for people to notice and it leads to strange results otherwise.","distinct":true,"url":"https://api.github.com/repos/mapr/elasticsearch/commits/16461f9a57c83881a9e61060d5b759a1768b6ede"},{"sha":"054019338a59b5f7fff0f2013c4439bc9f0edba5","author":{"email":"cdedbaf433217656e9df940dd535438abed9f74c@writequit.org","name":"Lee Hinman"},"message":"[DOCS] Use https for rpm packages, add dnf instructions","distinct":true,"url":"https://api.github.com/repos/mapr/elasticsearch/commits/054019338a59b5f7fff0f2013c4439bc9f0edba5"},{"sha":"fc5f9ca893f4a7dbb9609ca41bb21b6969d9c9c1","author":{"email":"aa743a0aaec8f7d7a1f01442503957f4d7a2d634@pilato.fr","name":"David Pilato"},"message":"Fix: Change docs on \"node client\" to not use an in-memory node\n\nCurrently we suggesting users create a Node (using NodeBuilder in 2.x) to have a client that is capable of keeping up-to-date information. This is generally a bad idea as it means elasticsearch has no control over eg max heap size or gc settings, and is also problematic for users because they must deal with dependency collisions (and in 2.x+ dependencies of elasticsearch itself).\n\nA better alternative, and what we should document, is to run a local elasticsearch server using bin/elasticsearch, and then use the transport client to connect to that local node. This local connection is virtually free, and allows the client code to be completely isolated from the elasticsearch process. Plugins are then also easy to deal with: just install them in elasticsearch as usual.\n\nBackport of #16679 in 2.x branch.","distinct":true,"url":"https://api.github.com/repos/mapr/elasticsearch/commits/fc5f9ca893f4a7dbb9609ca41bb21b6969d9c9c1"},{"sha":"22afde094fce6efc54a715b1ebb3b6953d4d3f12","author":{"email":"68c46a606457643eab92053c1c05574abb26f861@tedor.me","name":"Jason Tedor"},"message":"Add note on Groovy dependencies to migration docs\n\nThis commit backports commit 5d8631848b54c0d5545959857b84a19379f6cd2c\nfrom master to 2.x.\n\nRelates #16858","distinct":true,"url":"https://api.github.com/repos/mapr/elasticsearch/commits/22afde094fce6efc54a715b1ebb3b6953d4d3f12"},{"sha":"4e98bd8987a32abb67974feb9f30b9f63c44add0","author":{"email":"cd30b83b3787c52251dabc7000a4f9dfbe1c5f24@gmail.com","name":"Nik Everett"},"message":"Setup logging in package tests\n\nWe need to do this now because elasticsearch doesn't start if it fails to\nset up logging.","distinct":true,"url":"https://api.github.com/repos/mapr/elasticsearch/commits/4e98bd8987a32abb67974feb9f30b9f63c44add0"},{"sha":"65f8fcc33929c0b6d3d37a2d2915feb94d2c6615","author":{"email":"ffdeac08bf09e57bb2f587dbe0cf74ccedb7231b@gmail.com","name":"Andrey Ryaguzov"},"message":"Docs: Added migration description for custom analysis file path\n\nCloses #15597\nCloses #15556","distinct":true,"url":"https://api.github.com/repos/mapr/elasticsearch/commits/65f8fcc33929c0b6d3d37a2d2915feb94d2c6615"},{"sha":"b4f990605052f2f95b40d3b8c7b294122a1ebceb","author":{"email":"b94c0cfa21109a77b1c218c0761b0bfc6299786a@gmail.com","name":"javanna"},"message":"Cleanup search sub transport actions and collapse o.e.action.search.type package into o.e.action.search\n\nTransportSearchTypeAction and subclasses are not actually transport actions, but just support classes useful for their inner async actions that can easily be extracted out so that we get rid of one too many level of abstraction.\n\nSame pattern can be applied to TransportSearchScrollQueryAndFetchAction & TransportSearchScrollQueryThenFetchAction which we could remove in favour of keeping only their inner classes named SearchScrollQueryAndFetchAsyncAction and SearchScrollQueryThenFetchAsyncAction.\n\nRemove org.elasticsearch.action.search.type package, collapsed remaining classes into existing org.elasticsearch.action.search package\n\nMake also ParsedScrollId ScrollIdForNode and TransportSearchHelper classes and their methods package private.\n\nCloses #11710","distinct":true,"url":"https://api.github.com/repos/mapr/elasticsearch/commits/b4f990605052f2f95b40d3b8c7b294122a1ebceb"},{"sha":"afbc98a47fc9b102c121c63f19581f5e74476776","author":{"email":"510f39f56024f02fca204fe74f70d8394d0ea930@stamus-networks.com","name":"Laurent Defert"},"message":"Fix waiting for pidfile\n\nCloses #16717","distinct":true,"url":"https://api.github.com/repos/mapr/elasticsearch/commits/afbc98a47fc9b102c121c63f19581f5e74476776"},{"sha":"6f51d24d5dc6c882b48c5b99a351fef9ff124587","author":{"email":"1e115feeab9474b9d680e5528024201af6e7722f@traveljury.com","name":"Clinton Gormley"},"message":"Documented [] syntax for buckets_path\n\nCloses #15707","distinct":true,"url":"https://api.github.com/repos/mapr/elasticsearch/commits/6f51d24d5dc6c882b48c5b99a351fef9ff124587"},{"sha":"296da004ec51358683993289b7942f21aee741a9","author":{"email":"1e115feeab9474b9d680e5528024201af6e7722f@traveljury.com","name":"Clinton Gormley"},"message":"Update zen.asciidoc\n\nRemove docs saying that unicast hosts supports port ranges.\r\n\r\nRelates to #15816","distinct":true,"url":"https://api.github.com/repos/mapr/elasticsearch/commits/296da004ec51358683993289b7942f21aee741a9"},{"sha":"4acdb14b4e16a585c8d482bf42b0516588b5faec","author":{"email":"f2d582bd23ffb37ba926272484fabf207d9e5aba@apache.org","name":"Simon Willnauer"},"message":"Backort add setFactory permission to GceDiscoveryPlugin\n\nThis commit adds a missing permission and a simple test that\nensures we discover other nodes via a mock http endpoint.\n\nBackport of #16860\nRelates to #16485","distinct":true,"url":"https://api.github.com/repos/mapr/elasticsearch/commits/4acdb14b4e16a585c8d482bf42b0516588b5faec"},{"sha":"dc2d58c6a7942d62e4104efa954f577165ac42e3","author":{"email":"1e115feeab9474b9d680e5528024201af6e7722f@traveljury.com","name":"Clinton Gormley"},"message":"Update count.asciidoc\n\nAdded a note clarifying that deleted documents are not returned by `_cat/count`\r\n\r\nCloses https://github.com/elastic/elasticsearch/issues/16008","distinct":true,"url":"https://api.github.com/repos/mapr/elasticsearch/commits/dc2d58c6a7942d62e4104efa954f577165ac42e3"},{"sha":"ba287f661573edff374dcf1217ff24525a801d65","author":{"email":"1e115feeab9474b9d680e5528024201af6e7722f@traveljury.com","name":"Clinton Gormley"},"message":"Merge pull request #16116 from elastic/bleskes-patch-1\n\nminor tweak to 2.x _reroute documentation","distinct":true,"url":"https://api.github.com/repos/mapr/elasticsearch/commits/ba287f661573edff374dcf1217ff24525a801d65"},{"sha":"3c414492be6ddc9275fca3c362e5c29def943e90","author":{"email":"69d448d1f653a116556c7279810bf60a3ebff907@elasticsearch.com","name":"Simon Willnauer"},"message":"Merge pull request #16881 from s1monw/backport_16860\n\nBackport add setFactory permission to GceDiscoveryPlugin\r\n\r\nThis commit adds a missing permission and a simple test that\r\nensures we discover other nodes via a mock http endpoint.\r\n\r\nBackport of #16860\r\nRelates to #16485","distinct":true,"url":"https://api.github.com/repos/mapr/elasticsearch/commits/3c414492be6ddc9275fca3c362e5c29def943e90"}]}