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
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.
<queryset>
<fullquery name="get_portrait_info">
<querytext>
select cr.publish_date, cr.title as portrait_title, cr.description as portrait_description
from cr_revisions cr, cr_items ci, acs_rels a
where cr.revision_id = ci.live_revision
and ci.item_id = a.object_id_two
and a.object_id_one = :user_id
and a.rel_type = 'user_portrait_rel'
limit 1
</querytext>
</fullquery> </queryset>
www.softwarepublico.gov.br/dotlrn/bio-update
where object_id_one = :user_id
and rel_type = 'user_portrait_rel' }]} { <<< codigo para gravar a imagem e criar a relacao>>
} mas o resultado é o mesmo.