Skip to content

Commit 293c121

Browse files
authored
[ServiceBus] Fix mktime overflow and milliseconds miscalculation issue (Azure#19437)
* fix utc and milliseconds issue * fix python2.7 * update uamqp dependency to 1.4.1
1 parent af456fe commit 293c121

File tree

6 files changed

+14
-10
lines changed

6 files changed

+14
-10
lines changed

sdk/servicebus/azure-servicebus/CHANGELOG.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,13 @@
22

33
## 7.3.1 (Unreleased)
44

5-
**Bug Fixes**
5+
### Fixed
66

7-
* Fixed a bug that when setting `ServiceBusMessage.partition_key`, input value should be not validated against `session_id` of None (PR #19233, thanks @bishnu-shb).
7+
- Fixed a bug that when setting `ServiceBusMessage.partition_key`, input value should be not validated against `session_id` of None (PR #19233, thanks @bishnu-shb).
8+
- Fixed a bug that setting `ServiceBusMessage.time_to_live` causes OverflowError error on Ubuntu 20.04.
9+
- Fixed a bug that `AmqpAnnotatedProperties.creation_time` and `AmqpAnnotatedProperties.absolute_expiry_time` should be calculated in the unit of milliseconds instead of seconds.
10+
- Updated uAMQP dependency to 1.4.1.
11+
- Fixed a bug that attributes creation_time, absolute_expiry_time and group_sequence on MessageProperties should be compatible with integer types on Python 2.7.
812

913
## 7.3.0 (2021-06-08)
1014

sdk/servicebus/azure-servicebus/azure/servicebus/_common/message.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -355,7 +355,7 @@ def time_to_live(self, value):
355355
self._raw_amqp_message.header.time_to_live != MAX_DURATION_VALUE:
356356
if not self._raw_amqp_message.properties:
357357
self._raw_amqp_message.properties = AmqpMessageProperties()
358-
self._raw_amqp_message.properties.creation_time = int(time.mktime(utc_now().timetuple()))
358+
self._raw_amqp_message.properties.creation_time = int(time.mktime(utc_now().timetuple())) * 1000
359359
self._raw_amqp_message.properties.absolute_expiry_time = min(
360360
MAX_ABSOLUTE_EXPIRY_TIME,
361361
self._raw_amqp_message.properties.creation_time + self._raw_amqp_message.header.time_to_live

sdk/servicebus/azure-servicebus/azure/servicebus/_common/utils.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
cast
2525
)
2626
from contextlib import contextmanager
27-
from msrest.serialization import UTC
27+
from msrest.serialization import TZ_UTC
2828

2929
try:
3030
from urlparse import urlparse
@@ -81,11 +81,11 @@
8181

8282

8383
def utc_from_timestamp(timestamp):
84-
return datetime.datetime.fromtimestamp(timestamp, tz=UTC())
84+
return datetime.datetime.fromtimestamp(timestamp, tz=TZ_UTC)
8585

8686

8787
def utc_now():
88-
return datetime.datetime.now(UTC())
88+
return datetime.datetime.now(TZ_UTC)
8989

9090

9191
def build_uri(address, entity):

sdk/servicebus/azure-servicebus/azure/servicebus/amqp/_amqp_message.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
from datetime import datetime
99
from typing import Optional, Any, cast, Mapping
1010

11-
from msrest.serialization import UTC
11+
from msrest.serialization import TZ_UTC
1212
import uamqp
1313

1414
from ._constants import AMQP_MESSAGE_BODY_TYPE_MAP, AmqpMessageBodyType
@@ -229,7 +229,7 @@ def _to_outgoing_amqp_message(self):
229229
message_header.priority = self.header.priority
230230
if self.header.time_to_live and self.header.time_to_live != MAX_DURATION_VALUE:
231231
ttl_set = True
232-
creation_time_from_ttl = int(time.mktime(datetime.now(UTC()).timetuple()))
232+
creation_time_from_ttl = int(time.mktime(datetime.now(TZ_UTC).timetuple()) * 1000)
233233
absolute_expiry_time_from_ttl = int(min(
234234
MAX_ABSOLUTE_EXPIRY_TIME,
235235
creation_time_from_ttl + self.header.time_to_live

sdk/servicebus/azure-servicebus/setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@
7979
'azure',
8080
]),
8181
install_requires=[
82-
"uamqp>=1.4.0,<2.0.0",
82+
"uamqp>=1.4.1,<2.0.0",
8383
'azure-common~=1.1',
8484
'msrest>=0.6.17,<2.0.0',
8585
'azure-core<2.0.0,>=1.14.0',

shared_requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ opentelemetry-sdk<2.0.0,>=1.0.0
174174
#override azure-eventhub uamqp>=1.4.0,<2.0.0
175175
#override azure-appconfiguration msrest>=0.6.10
176176
#override azure-mgmt-appconfiguration msrest>=0.6.21
177-
#override azure-servicebus uamqp>=1.4.0,<2.0.0
177+
#override azure-servicebus uamqp>=1.4.1,<2.0.0
178178
#override azure-servicebus msrest>=0.6.17,<2.0.0
179179
#override azure-servicebus azure-core<2.0.0,>=1.14.0
180180
#override azure-servicefabric msrest>=0.6.21

0 commit comments

Comments
 (0)