【有意思的BUG】视频连接超时
最近遇到了一个BUG,但是它的出现又存在概率,所以挺有意思的。
BUG的现象是:视频在播放过程中(已播放进度<已加载进度),首先出现了缓冲的动画效果其次呈现雪花背景并且抛出异常"视频连接超时" 。或者首先出现了缓冲的动画效果其次视频返回从头播放。
定位到BUG的原因是:某1台服务器存在不稳定的因素,导致视频播放过程中出现了中断。(也就是外部原因)(不过外部原因对服务造成影响的大小是否可以在代码层面优化?可以补充和思考)

具体说说----
当我们访问1个视频网站,打开了某1个视频,那么接下来会有几个步骤:
[1] 解析XML文件
[2] 与视频源建立连接
[3] 视频开始播放
那么,这个BUG的原因是在第[2]个步骤,为啥会存在概率呢?
网站的视频源会存放在多台服务器上面,比如放在这3台服务器上:flv.bn.youtube.com | flv4.bn.youtube.com | flv5.bn.youtube.com
这样做的目的(1)是不会因为某1台服务器坏了就影响到用户看不了视频,目的(2)是分散用户访问对服务器的压力,
同时,程序员在代码内也事先配置了flv、flv4、flv5被访问的概率,
所以,用户有时候是从flv.bn.youtube.com获取视频源,有时候是从flv4.bn.youtube.com获取视频源,有时候也可能是从flv5.bn.youtube.com获取视频源,
当用户的某1次请求是与那台不稳定的服务器建立的(即:在不稳定的服务器上看视频,比如假设今天flv.bn.youtube.com不稳定),就会出现这个BUG了。BUG的表现形式虽然有所差别,那是受到网络环境和服务器配置等因素共同影响的了。
[ 2014-07-03 16:22:27 ] YoutubePlayer xx.xxxx
[ 2014-07-03 16:22:27 ] Chrome ooooo
[ 2014-07-03 16:22:27 ] WIN ooooo
[ 2014-07-03 16:22:27 ] sid:xxxxx
[ 2014-07-03 16:22:27 ] vid:ooooo
[ 2014-07-03 16:22:27 ] topicid:xxxxx
[ 2014-07-03 16:22:27 ] pltype:ooooo
[ 2014-07-03 16:22:27 ] iplimit:xxxxx
[ 2014-07-03 16:22:27 ] videoadv:http://xxx.ooo.xxx.ooo.xml
[ 2014-07-03 16:22:29 ] _m:1, _b:0
[ 2014-07-03 16:22:29 ] ns.play(http://flv.bn.youtube.com/xxxxx.flv)
[ 2014-07-03 16:22:29 ] false | NetStream.Play.Start
[ 2014-07-03 16:22:29 ] duration:437.24
[ 2014-07-03 16:22:30 ] ns.play(http://flv.bn.youtube.com/xxxxx.flv)
[ 2014-07-03 16:22:30 ] true | NetStream.Play.Start
[ 2014-07-03 16:22:30 ] ns.play(http://flv.bn.youtube.com/xxxxx.flv?start=2129&end=33031317)
[ 2014-07-03 16:22:30 ] true | NetStream.Play.Start
[ 2014-07-03 16:22:31 ] true | NetStream.Video.DimensionChange
[ 2014-07-03 16:22:31 ] true | NetStream.Buffer.Full
[ 2014-07-03 16:22:46 ] true | NetStream.Buffer.Flush
[ 2014-07-03 16:22:48 ] true | NetStream.Play.Stop
【有意思的BUG】视频连接超时的更多相关文章
- 关于MySQL的wait_timeout连接超时问题报错解决方案
bug回顾 : 想必大家在用MySQL时都会遇到连接超时的问题,如下图所示: ### Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsExce ...
- 关于Oracle连接超时的问题
测试环境ORACLE 11.2.0. 如果连接池设置单个连接闲置时间大于数据库连接超时时间,则连接池中的连接发出数据请求时会出现Connect timeout occurred错误, 这是由于连接超时 ...
- MySQL的8小时连接超时时间,导致系统过夜即崩溃,报错Could not roll back Hibernate transaction
2014年3月开始给单位开发<机关规范化管理网络平台>,10月底成功上线运行,但是存在一个bug: 部署环境: apache tomcat 6.0.41 + mysql5.5 + jbpm ...
- Linux Vsftpd 连接超时解决方法(被动模式)
http://blog.csdn.net/qq_15766181/article/details/46554643 使用 FileZilla FTP Client 连接 Vsftpd FTP,在没有配 ...
- 修改tnsnames.ora文件中配置内容中的连接别名后,连接超时解决办法
1.tnsnames.ora文件中配置内容中的连接别名:由upaydb修改为IP地址 2.连接超时 定位原因: PLSQL登录界面的数据库列表就是读的tnsname.ora中连接的别名,这个文件中连接 ...
- SQL Server 连接超时案例一则
上周六,一工厂系统管理员反馈一数据库连接不上,SSMS连接数据库报"连接超时时间已到.在尝试使用预登录握手确认时超过了此超时时间.......", 如下截图所示: 另外远程连接也连 ...
- SSRS报表连接超时的问题
这段时间遇到一个问题就是ReportService 中采用了远程连接的报表偶尔会断开连接,导致报表导出异常,查阅了很多资料,几天来就是断断续续的终于解决了这个问题,下面把一些解决的点一一展示出来,便于 ...
- Linux Vsftpd 连接超时解决方法
Linux Vsftpd 连接超时解决方法 2013-11-13 10:58:34| 分类: 默认分类|举报|字号 订阅 解决方法(http://www.lingdus.com/thread ...
- (转)hbase master挂掉-zookeeper连接超时原因
link:http://www.51testing.com/?uid-445759-action-viewspace-itemid-812467 并行运行hbase删表,建表操作,多个表多个regio ...
随机推荐
- CUDA零内存拷贝 疑问考证
今天思考了一下CUDA零内存拷贝的问题,感觉在即将设计的程序中会派上用场,于是就查了一下相关信息. 以下是一些有帮助的链接: cuda中的零拷贝用法--针对二维指针 cuda中的零拷贝用法--针对一维 ...
- MySQL的四种事务隔离级别
本文实验的测试环境:Windows 10+cmd+MySQL5.6.36+InnoDB 一.事务的基本要素(ACID) 1.原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做 ...
- 关于拒绝测试驱动开发(NoTDD)
今天在reddit看到微软某大牛的博客(https://blogs.msdn.microsoft.com/ericgu/2017/06/22/notdd/),说到拒绝TDD(测试驱动开发,下文统一使用 ...
- Java添加JDBC
添加JDBC 1.SQL Server SQL Server2005 下载 sqljdbc_4.0 https://www.microsoft.com/en-us/download/details.a ...
- 如何判断浏览器为ie10以上
如果针对ie10 以上单独写css样式的话,ie10以上已经不提供 <!--[if ...]><![endif]--> 这种方法去操作了,所以可以用css媒体查询的方法@med ...
- java 中的 instanceof
instanceof是Java的一个二元操作符,和==,>,<是同一类东东.由于它是由字母组成的,所以也是Java的保留关键字.它的作用是测试它左边的对象是否是它右边的类的实例,返回boo ...
- git的一些基本命令
1.创建一个新的仓库:(选择一个合适的地方,创建一个空目录) $mkdir learngit //learngit是用git新建的一个目录 $cd learngit $pwd //pwd命令用于显示当 ...
- Ubuntu-修改图片分辨率
ubuntu14.04 压缩图片default_wallpaper.jpg(2048x1536):压缩后ooo.jpg(1920x1280) if( 宽 > 高 ){ convert defau ...
- Python基础之常用模块(二)
一.sys模块 1.sys.exit() 退出程序,这是正常退出程序,与之前用的break不同的是,break只是退出循环,循环之后的代码还会正常运行 2.sys.argv 会返回一个列表,列表中的 ...
- *更新*无需root,一条命令强制全屏模式
未root的系统,必须通过pc端运行adb命令进行设置,因此请开启开发者选项中的adb调试模式,用usb连接电脑和手机,运行下面的代码强制开启全屏模式,立即生效:全屏沉浸: adb shell set ...