W3C home > Mailing lists > Public > public-webrtc@w3.org > March 2013

Re: WebRTC spec errata (regarding states)

From: Justin Uberti <juberti@google.com>
Date: Tue, 12 Mar 2013 21:14:16 -0700
Message-ID: <CAOJ7v-3rWtHCL9Mt3iPQYQjdX4oCgbMO=oOB-sacrOrym_eH2w@mail.gmail.com>
To: Adam Bergkvist <adam.bergkvist@ericsson.com>
Cc: "public-webrtc@w3.org" <public-webrtc@w3.org>, Per Kjellander <perkj@google.com>, Mallinath Bareddy <mallinath@google.com>, Harald Alvestrand <hta@google.com>
On Tue, Mar 12, 2013 at 3:27 AM, Adam Bergkvist <adam.bergkvist@ericsson.com
> wrote:

> On 2013-03-11 18:23, Justin Uberti wrote:
>> On Mon, Mar 11, 2013 at 8:33 AM, Adam Bergkvist
>> <adam.bergkvist@ericsson.com <mailto:adam.bergkvist@**ericsson.com<adam.bergkvist@ericsson.com>>>
>> wrote:
>>         I think this would be the dreaded INTERNAL_ERROR; the PC is
>>         essentially
>>         in an undefined state at this point, and the application should
>>         discard
>>         it. The session description might have been fine, but we just
>>         exploded
>>         when trying to apply it.
>>     Ok. We need to specify how that would work. I guess this isn't the
>>     only way to end up in such a state. Do you have any suggestions for
>>     this text?
>> Something like:
>> The RTCSessionDescription is a valid description but cannot be applied
>> at the media layer.
>> This can happen, e.g., if there are insufficient resources to apply the
>> SDP. The user agent
>> MUST then attempt to roll back to the previous session description, if
>> the new description was
>> partially applied when the failure occurred.
>> If rollback was not necessary or was completed successfully, let
>> errorType be INCOMPATIBLE_SESSION_**DESCRIPTION. The connection retains
>> its previous state.
>> If rollback was not possible, let errorType be INTERNAL_ERROR. The state
>> of the connection is now undefined, and the application should discard
>> it and clean up.
> This works, but I think we at least need to set the signaling state to
> "closed" in the INTERNAL_ERROR case to fail further operations on the
> connection.
I'm not sure that we do. When sockets encounter errors, they don't
automatically go into a closed state - something has to close them first.

> A bit off-topic.. "closed" feels a bit alien in the signaling state enum.
> For example, when something like INTERNAL_ERROR happens, it would feel more
> natural to keep the signaling state in whatever sate it was and have
> something else indicate that the entire connection is down. So the
> signaling state would either reach "stable" or stall in it's current state;
> never go to something like "closed".

I know what you mean, especially if "closed" can only be reached by calling
.close(). That said, I don't know if there's any better place for this
information; last thing I want is a .closed property.
Received on Wednesday, 13 March 2013 04:15:04 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 19:17:42 UTC