Ir para o conteúdo

 Voltar a OpenACS: Des...
Tela cheia

Erro ao acessar perfil de um usuário

12 de Julho de 2007, 11:44 , por Desconhecido - | 1 Pessoa seguindo este artigo.
Visualizado 20 vezes

Olá,

Gostaria que minha primeira participação não fosse um pedido para resolver um "problema cabeludo", mas não consegui encontrar nada semelhante nos fóruns oficiais e meu report de bug ainda não foi solucionado.

Bem, tenho uma única usuária no meu sistema dotLRN, que possui mais de 300 membros,  que pela segunda vez perdeu o acesso ao seu perfil para editar após subir sua imagem. O perfil também não está visível aos outros usuários.

Não há problema com a imagem que ela enviou. Porém também não consigo recuperá-la do BD para analisar. O número da usuária é 48700 e o erro que aparece quando se tenta acessar seu perfil ou qualquer informação sobre ela como administrador é está abaixo. Detalhe: não posso excluí-la ou modificá-la como administrador por causa deste problema.

Como disse, com nenhum outro usuário tive este problema e não encontrei relato semelhante na comunidade. Com ela já é a segunda vez que acontece. Agradeço a ajuda.

Database operation "0or1row" failed (exception NSINT, "Query returned more than one row.")

SQL:
            select cr_items.live_revision as revision_id,
                   coalesce(cr_revisions.title, 'view this portrait') as portrait_title
            from acs_rels,
                 cr_items,
                 cr_revisions
            where acs_rels.object_id_two = cr_items.item_id
            and cr_items.live_revision = cr_revisions.revision_id
            and acs_rels.object_id_one = '48700'
            and acs_rels.rel_type = 'user_portrait_rel'

    while executing
"ns_pg_bind 0or1row nsdb0 {
            select cr_items.live_revision as revision_id,
                   coalesce(cr_revisions.title, 'view this portra..."
    ("uplevel" body line 1)
    invoked from within
"uplevel $ulevel [list ns_pg_bind $type $db $sql]"
    ("postgresql" arm line 2)
    invoked from within
"switch $driverkey {
                oracle {
                    return [uplevel $ulevel [list ns_ora $type $db $sql] $args]
                }
       ..."
    invoked from within
"db_exec 0or1row $db $full_statement_name $sql"
    invoked from within
"set selection [db_exec 0or1row $db $full_statement_name $sql]"
    ("uplevel" body line 2)
    invoked from within
"uplevel 1 $code_block "
    invoked from within
"db_with_handle -dbn $dbn db {
        set selection [db_exec 0or1row $db $full_statement_name $sql]
    }"
    (procedure "db_0or1row" line 23)
    invoked from within
"db_0or1row select_portrait_info {}"
    ("uplevel" body line 1)
    (procedure "code::tcl::/var/lib/aolserver/dotlrn-2-1/packages/dotlrn/www..." line 1)
    invoked from within
"code::tcl::$__adp_stub"
    invoked from within
"if { [file exists $__adp_stub.tcl] } {

      # ensure that data source preparation procedure exists and is up-to-date
      adp_init tcl $__adp_stub
..."
    ("uplevel" body line 3)
    invoked from within
"uplevel {

    if { [file exists $__adp_stub.tcl] } {

      # ensure that data source preparation procedure exists and is up-to-date
      adp_init t..."
    (procedure "adp_prepare" line 2)
    invoked from within
"adp_prepare "
    (procedure "template::adp_parse" line 30)
    invoked from within
"template::adp_parse [file root [ad_conn file]] {}"
    (procedure "adp_parse_ad_conn_file" line 5)
    invoked from within
"$handler"
    ("uplevel" body line 2)
    invoked from within
"uplevel $code"
    invoked from within
"ad_try {
                $handler
            } ad_script_abort val {
                # do nothing
            }"
    invoked from within
"rp_serve_concrete_file [ad_conn file]"
    (procedure "rp_serve_abstract_file" line 60)
    invoked from within
"rp_serve_abstract_file "$root/$path""
    ("uplevel" body line 2)
    invoked from within
"uplevel $code"
    invoked from within
"ad_try {
            rp_serve_abstract_file "$root/$path"
            set tcl_url2file([ad_conn url]) [ad_conn file]
            set tcl_url2path_info..."


 

Autor: Jaime Balbino


88 comentários

  • 12cf2da8b1a1753868c7e20816b7dab5?only path=false&size=50&d=404Eduardo Santos(usuário não autenticado)
    12 de Julho de 2007, 12:13

     

    Fala Jaime, tudo bem?

    Cara, esse é um bug tão chato e besta que vc vai ficar com raiva. O que acontece é que no antigo modelo de dados do dotlrn existia um lugar para colocar a foto no link /pvt/home. Na nova organização, o lugar para se alterar a foto é no link /dotlrn/control-panel. Para usuários muito antigos e que teinham um perfil no antigo modelo de dados, todas as vezes que ele tenta localizar a foto ele acha dois registro: um no modelo antigo e outro no novo. O que vc tem que fazer é pegar a última foto. 

    A minha sugestão é que vc altere a consulta para:

    select cr_items.live_revision as revision_id,
    coalesce(cr_revisions.title, 'view this portrait') as portrait_title
    from acs_rels,
    cr_items,
    cr_revisions
    where acs_rels.object_id_two = cr_items.item_id
    and cr_items.live_revision = cr_revisions.revision_id
    and acs_rels.object_id_one = '48700'
    and acs_rels.rel_type = 'user_portrait_rel'
    limit 1
    É uma espécie de "workaround" meio tosco mas funciona. Se não me engano a consulta está na query select_portrait_info, mas não sei extamente o caminho que a está evocando. Acredito que seja no /packages/dotlrn/www/user-portrait (o link veio meio apagado). Veja o link exato para o local onde esse erro acontece que eu te digo onde vc tem que alterar. A notícia ruim é que existem vários locais onde essa consulta é feita, e você vai ter que encontrá-los de alguma forma.

  • 12cf2da8b1a1753868c7e20816b7dab5?only path=false&size=50&d=404Eduardo Santos(usuário não autenticado)
    13 de Julho de 2007, 9:28

     

    Ah Jaime, só mais um detalhe. Todas as vezes que alterar um arquivo .xql, não se esqueça de mandar o serviço recarregar a query. O AOLServer armazena as consultas em cache, então se você fizer alteração nesses arquivos e não mandar recarregar ou reiniciar o serviço não vai funcionar.

    Para recarregar as consultas acesse o link /acs-admin/apm. 

Oportunidade de Trabalho com OpenACS

9 de Dezembro de 2011, 16:07, por Desconhecido

Domí­nio do ambiente Linux em modo Shell;



Fundamentos de desenvolvimento e criação de comunidades virtuais com o framework OpenACS

28 de Outubro de 2010, 16:51, por Desconhecido

Durante o Latinoware, que será realizado em Foz do Iguaçu entre os dias 10 e 12 de Novembro, será realizada uma oficina sobre desenvolvimento em OpenACS. A oficina é parte da iniciativa de compartilhamento do Projeto Software Público Internacional, e conta com apoio da organização.



Oficina sobre OpenACS em Belo Horizonte

19 de Novembro de 2008, 9:43, por Desconhecido

No dia 27 de novembro de 2008, será realizado durante o Encontro Mineiro de Software Livre, uma oficina para formação de desenvolvedores OpenACS. A oficina tem por objetivo introduzir a ferramenta na cidade e atender a uma demanda crescente por especialistas na área.



Treinamento em OpenACS em Brasília tem sua aula inaugural

10 de Novembro de 2008, 9:43, por Desconhecido

Fruto de uma paceria entre a Lupa Treinamento e a Secretaria de Logística e Tecnologia da Informação do Ministério do Planejamento, começou no último Sábado o terceiro treinamento em OpenACS realizado em Brasília.



Instalacao do OACS 5.3 em Debian e Ubuntu

29 de Janeiro de 2008, 16:52, por Desconhecido

Acaba http://cognovis.de/developer/ou de sair do forno...