Bug #16080 Lost connection after call a view for second time
Submitted: 30 Dec 2005 0:09 Modified: 9 Jan 2006 14:13
Reporter: Dick Villarreal Email Updates:
Status: Can't repeat Impact on me:
None 
Category:MySQL Server Severity:S2 (Serious)
Version:5.0.16 OS:Windows (Windows 2K)
Assigned to: MySQL Verification Team CPU Architecture:Any

[30 Dec 2005 0:09] Dick Villarreal
Description:
The following view run ok for the first time

CREATE ALGORITHM=UNDEFINED DEFINER=`siips-web`@`%` SQL SECURITY DEFINER VIEW `manual_comfe` AS select `sa_servicios`.`tarifa_id` AS `tarifa_id`,`sa_servicios`.`servicio_id` AS `servicio_id`,`sa_servicios`.`codigo_manual` AS `codigo_manual`,`sa_servicios`.`codigo_interno` AS `codigo_interno`,`sa_servicios`.`nombre` AS `nombre`,`sa_servicios`.`comercial` AS `comercial`,`sa_servicios`.`rips_gru_id` AS `rips_gru_id`,`sa_servicios`.`orden_id` AS `orden_id`,`sa_servicios`.`edad_minima` AS `edad_minima`,`sa_servicios`.`edad_maxima` AS `edad_maxima`,`sa_servicios`.`sexo` AS `sexo`,`sa_servicios`.`grupo_qx` AS `grupo_qx`,`sa_servicios`.`valor_pesos` AS `valor_pesos` from `sa_servicios` where (`sa_servicios`.`tarifa_id` = _latin1'SOAT2005') union select `sa_servicios`.`tarifa_id` AS `tarifa_id`,`sa_servicios`.`servicio_id` AS `servicio_id`,`sa_servicios`.`codigo_manual` AS `codigo_manual`,`sa_servicios`.`codigo_interno` AS `codigo_interno`,`sa_servicios`.`nombre` AS `nombre`,`sa_servicios`.`comercial` AS `comercial`,`sa_servicios`.`rips_gru_id` AS `rips_gru_id`,`sa_servicios`.`orden_id` AS `orden_id`,`sa_servicios`.`edad_minima` AS `edad_minima`,`sa_servicios`.`edad_maxima` AS `edad_maxima`,`sa_servicios`.`sexo` AS `sexo`,`sa_servicios`.`grupo_qx` AS `grupo_qx`,`sa_servicios`.`valor_pesos` AS `valor_pesos` from `sa_servicios` where (`sa_servicios`.`tarifa_id` = _latin1'SOAT2006')

but a second call to the view cause hang up on the server and i had to open services and restart de service mysql

 ERROR: (2013) Lost connection to MySQL server during query

How to repeat:
Every time after second run
[30 Dec 2005 0:55] MySQL Verification Team
Could you please provide a complete test script with tables involved with their
create definition, some inserts for test?

Thanks in advance.
[30 Dec 2005 16:23] Dick Villarreal
-- MySQL Administrator dump 1.4
--
-- ------------------------------------------------------
-- Server version	5.0.16-nt

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;

--
-- Create schema siips_web
--

CREATE DATABASE /*!32312 IF NOT EXISTS*/ siips_web;
USE siips_web;

--
-- Table structure for table `siips_web`.`sa_servicios`
--

DROP TABLE IF EXISTS `sa_servicios`;
CREATE TABLE `sa_servicios` (
  `tarifa_id` char(10) character set latin1 collate latin1_bin NOT NULL default '' COMMENT 'Codigo manual de tarifas',
  `servicio_id` char(10) character set latin1 collate latin1_bin NOT NULL default '' COMMENT 'Codigo del servicio',
  `codigo_manual` char(11) character set latin1 collate latin1_bin NOT NULL default '' COMMENT 'Codigo del servicio en el manual',
  `codigo_interno` char(10) character set latin1 collate latin1_bin NOT NULL default '' COMMENT 'Codigo interno del servicio',
  `nombre` varchar(200) character set latin1 collate latin1_bin NOT NULL default '' COMMENT 'Descripcion del servicio',
  `unidad_id` char(10) character set latin1 collate latin1_bin NOT NULL default '' COMMENT 'Codigo de unidad de presentacion',
  `rips_gru_id` char(2) character set latin1 collate latin1_bin NOT NULL default '' COMMENT 'Codigo de grupo rips del servicio',
  `orden_id` char(3) character set latin1 collate latin1_bin NOT NULL default '' COMMENT 'Codigo de tipo de orden de servicio',
  `comercial` varchar(150) character set latin1 collate latin1_bin NOT NULL default '' COMMENT 'Nombre comercial del servicio',
  `concentracion` varchar(20) NOT NULL default '' COMMENT 'Concentracion para medicamentos no pos',
  `farmaceutica` varchar(20) NOT NULL default '' COMMENT 'Forma farmaceutica de medicamentos no pos',
  `grupo_qx` tinyint(2) unsigned NOT NULL default '0' COMMENT 'Grupo Qx',
  `nivel` tinyint(1) unsigned NOT NULL default '0' COMMENT 'Nivel de complejidad del servicio',
  `control` enum('S','N') NOT NULL default 'N' COMMENT 'Indicador de servicio con control estatal',
  `edad_minima` tinyint(3) unsigned NOT NULL default '0' COMMENT 'Edad minima para el servicio',
  `edad_maxima` tinyint(3) unsigned NOT NULL default '150' COMMENT 'Edad maxima para el servicio',
  `sexo` enum('A','F','M') NOT NULL default 'A' COMMENT 'Indicador de sexo que puede recibir el servicio',
  `pos` enum('S','N') NOT NULL default 'N' COMMENT 'Indicador de servicio imcluido en el pos',
  `clasifica_id` char(10) character set latin1 collate latin1_bin NOT NULL default '' COMMENT 'Codigo de clasificacion del servicio',
  `resultados` enum('S','N') NOT NULL default 'N' COMMENT 'Indicador de servicio genera resultados',
  `compuesto` enum('S','N') NOT NULL default 'N' COMMENT 'Indicador de servicio de resultados compuesto',
  `valor_resultado` enum('TEXT','MEMO') NOT NULL default 'TEXT' COMMENT 'Indicador de formato de resultados',
  `reporte_resultado` char(10) NOT NULL default '' COMMENT 'Reporte especial para un servicio de resultado',
  `valor_unidad` mediumint(8) unsigned NOT NULL default '0' COMMENT 'Valor en unidades de valoracion',
  `unidad_valor` enum('PESOS','UVR','SMDLV') NOT NULL default 'PESOS' COMMENT 'Unidad de valoracion del servicio',
  `valor_pesos` mediumint(8) unsigned NOT NULL default '0' COMMENT 'Valor en pesos del servicio',
  `valor_costo` mediumint(8) unsigned NOT NULL default '0' COMMENT 'Valor de costo del servicio',
  PRIMARY KEY  (`servicio_id`,`tarifa_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='Portafolio de servicios';

--
-- Dumping data for table `siips_web`.`sa_servicios`
--

/*!40000 ALTER TABLE `sa_servicios` DISABLE KEYS */;
INSERT INTO `sa_servicios` (`tarifa_id`,`servicio_id`,`codigo_manual`,`codigo_interno`,`nombre`,`unidad_id`,`rips_gru_id`,`orden_id`,`comercial`,`concentracion`,`farmaceutica`,`grupo_qx`,`nivel`,`control`,`edad_minima`,`edad_maxima`,`sexo`,`pos`,`clasifica_id`,`resultados`,`compuesto`,`valor_resultado`,`reporte_resultado`,`valor_unidad`,`unidad_valor`,`valor_pesos`,`valor_costo`) VALUES 
 ('SOAT2005','19707','19707','CH','CUADRO HEMATICO','UNI','02','LAB','','','',1,1,'N',0,150,'A','S','-','N','N','TEXT','',3500,'PESOS',3500,0),
 ('SOAT2006','19707','19707','CH','CUADRO HEMATICO','UNI','02','LAB','','','',1,1,'N',0,150,'A','S','-','N','N','TEXT','',3500,'PESOS',3500,0);
/*!40000 ALTER TABLE `sa_servicios` ENABLE KEYS */;

--
-- View structure for view `siips_web`.`manual_comfe`
--

DROP VIEW IF EXISTS `manual_comfe`;
CREATE ALGORITHM=UNDEFINED DEFINER=`siips-web`@`%` SQL SECURITY DEFINER VIEW `siips_web`.`manual_comfe` AS select `siips_web`.`sa_servicios`.`tarifa_id` AS `tarifa_id`,`siips_web`.`sa_servicios`.`servicio_id` AS `servicio_id`,`siips_web`.`sa_servicios`.`codigo_manual` AS `codigo_manual`,`siips_web`.`sa_servicios`.`codigo_interno` AS `codigo_interno`,`siips_web`.`sa_servicios`.`nombre` AS `nombre`,`siips_web`.`sa_servicios`.`comercial` AS `comercial`,`siips_web`.`sa_servicios`.`rips_gru_id` AS `rips_gru_id`,`siips_web`.`sa_servicios`.`orden_id` AS `orden_id`,`siips_web`.`sa_servicios`.`edad_minima` AS `edad_minima`,`siips_web`.`sa_servicios`.`edad_maxima` AS `edad_maxima`,`siips_web`.`sa_servicios`.`sexo` AS `sexo`,`siips_web`.`sa_servicios`.`grupo_qx` AS `grupo_qx`,`siips_web`.`sa_servicios`.`valor_pesos` AS `valor_pesos` from `siips_web`.`sa_servicios` where (`siips_web`.`sa_servicios`.`tarifa_id` = _latin1'SOAT2005') union select `siips_web`.`sa_servicios`.`tarifa_id` AS `tarifa_id`,`siips_web`.`sa_servicios`.`servicio_id` AS `servicio_id`,`siips_web`.`sa_servicios`.`codigo_manual` AS `codigo_manual`,`siips_web`.`sa_servicios`.`codigo_interno` AS `codigo_interno`,`siips_web`.`sa_servicios`.`nombre` AS `nombre`,`siips_web`.`sa_servicios`.`comercial` AS `comercial`,`siips_web`.`sa_servicios`.`rips_gru_id` AS `rips_gru_id`,`siips_web`.`sa_servicios`.`orden_id` AS `orden_id`,`siips_web`.`sa_servicios`.`edad_minima` AS `edad_minima`,`siips_web`.`sa_servicios`.`edad_maxima` AS `edad_maxima`,`siips_web`.`sa_servicios`.`sexo` AS `sexo`,`siips_web`.`sa_servicios`.`grupo_qx` AS `grupo_qx`,`siips_web`.`sa_servicios`.`valor_pesos` AS `valor_pesos` from `siips_web`.`sa_servicios` where (`siips_web`.`sa_servicios`.`tarifa_id` = _latin1'SOAT2006');

--
-- View structure for view `siips_web`.`prueba`
--

DROP VIEW IF EXISTS `prueba`;
CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `siips_web`.`prueba` AS select `siips_web`.`sa_servicios`.`servicio_id` AS `servicio_id`,(`siips_web`.`sa_servicios`.`valor_pesos` / 2) AS `valor_pesos` from `siips_web`.`sa_servicios` where ((`siips_web`.`sa_servicios`.`tarifa_id` = _latin1'SOAT2005') and (`siips_web`.`sa_servicios`.`orden_id` = _latin1'LAB')) union select `siips_web`.`sa_servicios`.`servicio_id` AS `servicio_id`,(`siips_web`.`sa_servicios`.`valor_pesos` * 1.1) AS `valor_pesos` from `siips_web`.`sa_servicios` where ((`siips_web`.`sa_servicios`.`tarifa_id` = _latin1'SOTA2005') and (`siips_web`.`sa_servicios`.`servicio_id` = _latin1'19707'));

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
[30 Dec 2005 16:58] MySQL Verification Team
I was unable to repeat with server 5.0.17. Could you please test with
that released version? Thanks in advance.

C:\MYSQL5~1>bin\mysql --defaults-file=c:\mysql5017\s5017.ini -uroot -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4 to server version: 5.0.17-nt-log

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> use siips_web
Database changed
mysql> select * from manual_comfe\G
*************************** 1. row ***************************
     tarifa_id: SOAT2005
   servicio_id: 19707
 codigo_manual: 19707
codigo_interno: CH
        nombre: CUADRO
HEMATICO
     comercial:
   rips_gru_id: 02
      orden_id: LAB
   edad_minima: 0
   edad_maxima: 150
          sexo: A
      grupo_qx: 1
   valor_pesos: 3500
*************************** 2. row ***************************
     tarifa_id: SOAT2006
   servicio_id: 19707
 codigo_manual: 19707
codigo_interno: CH
        nombre: CUADRO
HEMATICO
     comercial:
   rips_gru_id: 02
      orden_id: LAB
   edad_minima: 0
   edad_maxima: 150
          sexo: A
      grupo_qx: 1
   valor_pesos: 3500
2 rows in set (0.00 sec)

mysql> select * from manual_comfe\G
*************************** 1. row ***************************
     tarifa_id: SOAT2005
   servicio_id: 19707
 codigo_manual: 19707
codigo_interno: CH
        nombre: CUADRO
HEMATICO
     comercial:
   rips_gru_id: 02
      orden_id: LAB
   edad_minima: 0
   edad_maxima: 150
          sexo: A
      grupo_qx: 1
   valor_pesos: 3500
*************************** 2. row ***************************
     tarifa_id: SOAT2006
   servicio_id: 19707
 codigo_manual: 19707
codigo_interno: CH
        nombre: CUADRO
HEMATICO
     comercial:
   rips_gru_id: 02
      orden_id: LAB
   edad_minima: 0
   edad_maxima: 150
          sexo: A
      grupo_qx: 1
   valor_pesos: 3500
2 rows in set (0.00 sec)

mysql> select * from manual_comfe\G
*************************** 1. row ***************************
     tarifa_id: SOAT2005
   servicio_id: 19707
 codigo_manual: 19707
codigo_interno: CH
        nombre: CUADRO
HEMATICO
     comercial:
   rips_gru_id: 02
      orden_id: LAB
   edad_minima: 0
   edad_maxima: 150
          sexo: A
      grupo_qx: 1
   valor_pesos: 3500
*************************** 2. row ***************************
     tarifa_id: SOAT2006
   servicio_id: 19707
 codigo_manual: 19707
codigo_interno: CH
        nombre: CUADRO
HEMATICO
     comercial:
   rips_gru_id: 02
      orden_id: LAB
   edad_minima: 0
   edad_maxima: 150
          sexo: A
      grupo_qx: 1
   valor_pesos: 3500
2 rows in set (0.00 sec)

mysql> select * from manual_comfe\G
*************************** 1. row ***************************
     tarifa_id: SOAT2005
   servicio_id: 19707
 codigo_manual: 19707
codigo_interno: CH
        nombre: CUADRO
HEMATICO
     comercial:
   rips_gru_id: 02
      orden_id: LAB
   edad_minima: 0
   edad_maxima: 150
          sexo: A
      grupo_qx: 1
   valor_pesos: 3500
*************************** 2. row ***************************
     tarifa_id: SOAT2006
   servicio_id: 19707
 codigo_manual: 19707
codigo_interno: CH
        nombre: CUADRO
HEMATICO
     comercial:
   rips_gru_id: 02
      orden_id: LAB
   edad_minima: 0
   edad_maxima: 150
          sexo: A
      grupo_qx: 1
   valor_pesos: 3500
2 rows in set (0.00 sec)

mysql> select * from manual_comfe\G
*************************** 1. row ***************************
     tarifa_id: SOAT2005
   servicio_id: 19707
 codigo_manual: 19707
codigo_interno: CH
        nombre: CUADRO
HEMATICO
     comercial:
   rips_gru_id: 02
      orden_id: LAB
   edad_minima: 0
   edad_maxima: 150
          sexo: A
      grupo_qx: 1
   valor_pesos: 3500
*************************** 2. row ***************************
     tarifa_id: SOAT2006
   servicio_id: 19707
 codigo_manual: 19707
codigo_interno: CH
        nombre: CUADRO
HEMATICO
     comercial:
   rips_gru_id: 02
      orden_id: LAB
   edad_minima: 0
   edad_maxima: 150
          sexo: A
      grupo_qx: 1
   valor_pesos: 3500
2 rows in set (0.00 sec)

mysql>
[9 Jan 2006 14:13] Dick Villarreal
I upgraded mysql to release 5.0.18 as you recommended, and then work ok.

Thanks Miguel