close Warning: Can't synchronize with repository "(default)" (/var/svn/tolp does not appear to be a Subversion repository.). Look in the Trac log for more information.

Opened 13 years ago

Closed 13 years ago

#1564 closed defect (fixed)

UpdateAll no actualiza bien

Reported by: Jorge Owned by: Pedro Gea
Priority: high Milestone: Mantainance
Component: TolPackage Version: 3.1
Severity: major Keywords:
Cc:

Description

En un servidor Linux nos encontramos con una situación en la cual UpdateAll reconoce siempre a un conjunto de paquetes como desactualizados.

Esta es la lista de paquetes en cuestión:

20:01:06 TOL> Real TolPackage::UpdateAll(?)
[UpdateAll] Se actualiza BabelTool.1.4
[UpdateAll] Se actualiza BysMcmc.6.7
[UpdateAll] Se actualiza BysPrior.3.1
[UpdateAll] Se actualiza ExtLib.1.9
[UpdateAll] Se actualiza GrzLinModel.4.2
[UpdateAll] Se actualiza GuiTools.3.4
[UpdateAll] Se actualiza IpoptCore.3.9
[UpdateAll] Se actualiza MMS.1.2
[UpdateAll] Se actualiza MMS.1.1
[UpdateAll] Se actualiza MmsInBws.1.920
[UpdateAll] Se actualiza StdLib.0.1
[UpdateAll] Se actualiza TolIpopt.3.1
12

Se adjunta también un oza con la lista de paquetes compatibles obtenidos según el siguiente código:

Set compatibleRecords = { [[
  Set clientRecords = TolPackage::Client::GetCatalog(?)::GetCompatibleRecords(Version, UnknownDate);
  Set serverRecords = TolPackage::Server::GetCatalog(?)::GetCompatibleRecords(Version, UnknownDate)
]] };

Attachments (1)

compatibleRecords.oza (48.2 KB) - added by Jorge 13 years ago.

Download all attachments as: .zip

Change History (5)

Changed 13 years ago by Jorge

Attachment: compatibleRecords.oza added

comment:1 Changed 13 years ago by Pedro Gea

Status: newaccepted

El siguiente código devuelve de los registros compatibles del OZA, aquellos a actualizar.
Esta lista sale vacía usando "v3.1 p012 2012-06-13 16:45:11 i686-win".

Set compatibleRecords = Ois.Load("compatibleRecords.oza")[1];

Set records = compatibleRecords[2];
Set refRecords = compatibleRecords[1];
Set SetConcat(EvalSet(refRecords, Set (Set refSubrecords) {
  Real index = FindIndexByName(records, Name(refSubrecords));
  If(index, {
    Set subrecords = records[index];
    // Se buscan todos los paquetes que necesiten ser actualizados
    // (manteniendo los números de versión) por otra versión más reciente. 
    Set Select(EvalSet(refSubrecords, Set (Set refRecord) {
      Real index2 = FindIndexByName(subrecords, Name(refRecord));
      If(index2, {
        Set record = subrecords[index2];
WriteLn("es "<<refRecord::release<<" < "<<record::release<<" : "
<<(Real refRecord::release<record::release));
        If(refRecord::release<record::release, record, Empty)
      }, Empty)
    }), Card)
  }, Empty)
}))

comment:2 Changed 13 years ago by Jorge

Por si aporta información, he necesitado llevarme los paquetes instaladados de una de las máquinas donde se manifiesta el problema descrito en este ticket, para eso he compactado TolPackage.2 y descompactado en la máquina destino. Al descompactar se emitieron mensajes como los siguientes:

tar: TolPackage.2/Client/TolIpopt.3.1/CppTools: time stamp 2012-06-21 17:58:17 is 5619 s in the future

comment:3 Changed 13 years ago by Pedro Gea

(In [4890]) Refs #1564, #1576
Se modifica la comparación de fechas para evitar los errores encontrados en Linux.

comment:4 Changed 13 years ago by Pedro Gea

Resolution: fixed
Status: acceptedclosed

El problema al comparar fechas se recoge en #1576. Entretanto se evita el bug comparando los índices de las fechas.

Note: See TracTickets for help on using tickets.