Skip to content

Commit cbdfc3d

Browse files
committed
Protect start_time and end_time from bein set manually by the user
Fixes open-telemetry#361
1 parent c24b3b5 commit cbdfc3d

File tree

1 file changed

+12
-4
lines changed
  • opentelemetry-sdk/src/opentelemetry/sdk/trace

1 file changed

+12
-4
lines changed

opentelemetry-sdk/src/opentelemetry/sdk/trace/__init__.py

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -171,10 +171,18 @@ def __init__(
171171
else:
172172
self.links = BoundedList.from_seq(MAX_NUM_LINKS, links)
173173

174-
self.end_time = None # type: Optional[int]
175-
self.start_time = None # type: Optional[int]
174+
self._end_time = None # type: Optional[int]
175+
self._start_time = None # type: Optional[int]
176176
self.instrumentation_info = instrumentation_info
177177

178+
@property
179+
def start_time(self):
180+
return self._start_time
181+
182+
@property
183+
def end_time(self):
184+
return self._end_time
185+
178186
def __repr__(self):
179187
return '{}(name="{}", context={})'.format(
180188
type(self).__name__, self.name, self.context
@@ -243,7 +251,7 @@ def start(self, start_time: Optional[int] = None) -> None:
243251
return
244252
has_started = self.start_time is not None
245253
if not has_started:
246-
self.start_time = (
254+
self._start_time = (
247255
start_time if start_time is not None else time_ns()
248256
)
249257
if has_started:
@@ -259,7 +267,7 @@ def end(self, end_time: Optional[int] = None) -> None:
259267
raise RuntimeError("Calling end() on a not started span.")
260268
has_ended = self.end_time is not None
261269
if not has_ended:
262-
self.end_time = end_time if end_time is not None else time_ns()
270+
self._end_time = end_time if end_time is not None else time_ns()
263271
if has_ended:
264272
logger.warning("Calling end() on an ended span.")
265273
return

0 commit comments

Comments
 (0)